https://github.com/jdvfx/tigershark3
Houdini asset version tracking with Sqlite3, Python3 front-end, Rust back-end
https://github.com/jdvfx/tigershark3
assets-management cli houdini rust sqlite3
Last synced: 6 months ago
JSON representation
Houdini asset version tracking with Sqlite3, Python3 front-end, Rust back-end
- Host: GitHub
- URL: https://github.com/jdvfx/tigershark3
- Owner: jdvfx
- Created: 2022-09-07T05:01:43.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-10T06:38:53.000Z (about 2 years ago)
- Last Synced: 2025-02-16T13:58:22.820Z (8 months ago)
- Topics: assets-management, cli, houdini, rust, sqlite3
- Language: Rust
- Homepage:
- Size: 259 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tigershark3
Tigershark3 is a cli based 3d asset versions tracking tool with simple CRUD functions
using Rust+Sqlite3 backend and Python3 for the Houdini frontend.
Since it's cli based and using JSON, it can be used with any software, not just Houdini.**Dependencies**
* Rust https://www.rust-lang.org/tools/install
* build-essential
* Ubuntu/Debian: sudo apt install build-essential
* Fedora: sudo dnf group install "C Development Tools and Libraries"
* SQLite3
* Python3
* Houdini19 (optional)**Build+Setup (Linux)**
build rust executable
```
$cargo build --release
```
setup executable and Sqlite3 DB (Tigershark exec path,DB path/name)adds two environment variables to .bashrc:
* $PYTHONPATH for Houdini, the tigershark python module
* $TS_DATABASE the Sqlite3 database path
```
$bash setup.sh
```**CLI Syntax**
tigershark3 -c {command} -a {asset}
available commands:
* insert : create new version (create if asset if )
* latest : returns the latest version of the asset
* source : returns the source file that created the current version
* delete (mark version for deletion)
* approve (approve asset version and dependencies)
* purge : write text file listing all versions to delete
* source_from_file : returns the source file that created the current versionasset format
* Json
{"name":"my_asset","location":"myasset_location"}**Examples**
* insert new asset
./tigershark3 -c insert -a '{"name":"my_asset","location":"myasset_location"}'* update asset
./tigershark3 -c insert -a '{"name":"my_asset","location":"myasset_location","datapath":"/data/myasset","source":"/sources/myasset_source"}'* find latest version of an asset
./tigershark3 -c latest -a '{"name":"my_asset","location":"myasset_location"}'* find source file from file path
./tigershark3 -c source_from_file -f /data/projects/show/seq/shot/my_file.1234.bgeo.sc**commands that require Json fields (asset)**
* insert
name && location || asset_id && datapath && source* source
name && location && version || asset_id && version || version_id* delete
name && location || asset_id && version || version_id* latest
name && location || asset_id* approve
name && location || asset_id && version || version_id**commands that require different arguments**
* purge
// no args required* source_from_file
file### DB Storage Scheme (SQlite3)
> 2 tables (assets/versions)
### Assets
asset_id : i64 *
name : String
location : String### Versions
version_id : i64
version : i64
source : String
datapath : String
depend : String
approved : i64
status : i64
asset_id : i64 *
ctime : String
atime : String