docs: bring the readme up to date
This commit is contained in:
73
README.md
73
README.md
@@ -1,5 +1,8 @@
|
|||||||
# ahab
|
# ahab
|
||||||
|
|
||||||
|
A wrapper around `docker compose` for our dockerized django projects, so the
|
||||||
|
same commands work in every repository.
|
||||||
|
|
||||||
## installing
|
## installing
|
||||||
|
|
||||||
You will need rust installed. Clone repo and run:
|
You will need rust installed. Clone repo and run:
|
||||||
@@ -7,14 +10,80 @@ You will need rust installed. Clone repo and run:
|
|||||||
cargo install --path .
|
cargo install --path .
|
||||||
```
|
```
|
||||||
|
|
||||||
To print underlying commands build with `debug` flag.
|
To print the underlying docker commands as they run, build with debug
|
||||||
|
assertions:
|
||||||
```bash
|
```bash
|
||||||
cargo install --path . --debug
|
cargo install --path . --debug
|
||||||
```
|
```
|
||||||
|
|
||||||
## shell completion
|
## shell completion
|
||||||
|
|
||||||
Completion files are generated **during build process** in `target/*/build/*/out/*`. Depending on your shell of choice move generated file to correct place in you file system.
|
`ahab completions <shell>` writes a completion script to stdout, for bash,
|
||||||
|
elvish, fish, powershell or zsh:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ahab completions zsh > ~/.local/share/zsh/completions/_ahab
|
||||||
|
eval "$(ahab completions zsh)" # or one line in .zshrc, never goes stale
|
||||||
|
```
|
||||||
|
|
||||||
|
Completions are also generated during the build. They land in
|
||||||
|
`target/*/build/*/out/` by default, and `SHELL_COMPLETIONS_DIR_<SHELL>`
|
||||||
|
installs a single shell's file straight into place:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
SHELL_COMPLETIONS_DIR_ZSH=~/.local/share/zsh/completions \
|
||||||
|
SHELL_COMPLETIONS_DIR_FISH=~/.config/fish/completions \
|
||||||
|
cargo install --path .
|
||||||
|
```
|
||||||
|
|
||||||
|
`SHELL_COMPLETIONS_DIR` writes every shell into one directory instead.
|
||||||
|
|
||||||
|
## compose
|
||||||
|
|
||||||
|
Wrappers around the matching `docker compose` call, plus `exec` and `bash`
|
||||||
|
which default to the django service.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ahab compose up # also build, down, ps, start, stop
|
||||||
|
ahab compose rebuild # stop, build, up
|
||||||
|
ahab compose restart # stop, up, so containers are recreated
|
||||||
|
ahab compose bash # shell in the django service
|
||||||
|
ahab compose exec <cmd>
|
||||||
|
```
|
||||||
|
|
||||||
|
## django
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ahab django manage <args> # manage.py in a fresh container
|
||||||
|
ahab django makemigrations
|
||||||
|
ahab django migrate <args>
|
||||||
|
ahab django shell
|
||||||
|
ahab django test
|
||||||
|
ahab django make-command <app> <name>
|
||||||
|
```
|
||||||
|
|
||||||
|
## postgres
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ahab postgres dump <path> # pg_dump, custom format
|
||||||
|
ahab postgres import <path> # drop, create, pg_restore
|
||||||
|
```
|
||||||
|
|
||||||
|
## link
|
||||||
|
|
||||||
|
`ahab link` moves untracked paths out of the repository into an out-of-repo
|
||||||
|
store and symlinks them back, so a sandbox that mounts the repository sees a
|
||||||
|
dangling symlink instead of the contents, while the host resolves it as before.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ahab link add .env secrets/ # move out, leave symlinks behind
|
||||||
|
ahab link check # what a sandbox can still read
|
||||||
|
ahab link check --porcelain # `<code> <path>`, for scripts
|
||||||
|
```
|
||||||
|
|
||||||
|
The store lives under
|
||||||
|
`${XDG_DATA_HOME:-$HOME/.local/share}/ahab/<host>/<owner>/<repo>/`, derived
|
||||||
|
from the git `origin` remote.
|
||||||
|
|
||||||
## configuration
|
## configuration
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user