# GAS stack ## Compiling Requires a Go compiler (minimum 1.22.5) and a C compiler, due to use of CGo. ```sh git clone https://git.offline-twitter.com/offline-labs/gas-stack.git cd gas-stack go build -o gas -tags fts5 ./cmd # Installation (optional) sudo mv gas /usr/local/bin # ...or anywhere on your $PATH which gas # should print "/usr/local/bin/gas" ``` ## Using The linter (`gas sqlite_lint`) is stable and useful. The code generator is buggy, incomplete, and not remotely stable, but still quite useful. Don't expect it to produce perfectly working code, or even to compile correctly (e.g., you'll probably have to fix the imports). Copy-paste the parts that are useful, and delete the parts that aren't. #### Linter ```sh gas sqlite_lint ``` #### Code generator ```sh gas generate table_name # Generates a model gas generate --test table_name # Optional: generates tests ``` It prints to the console. You can copy-paste the result. Or you can use bash redirection: ```sh gas generate users > pkg/db/user.go gas generate --test users > pkg/db/user_test.go ``` Useful flags: - `--schema`: by default, `gas generate` assumes that the schema is at `pkg/db/schema.sql`. Use `gas generate --schema [...]` to indicate otherwise