2022-03-31 14:00:20 +00:00
---
2022-07-18 14:12:31 +00:00
title: Cheat sheet
2022-03-31 14:00:20 +00:00
---
# Abra cheat sheet
!!! info
not all flags are listed here.
!!! warning
Definitely set up autocomplete or you'll be sad
`abra autocomplete bash/zsh/fizsh`
### create and deploy a new app:
- `abra app new $RECIPE`
flags: `-s/--server` , `-D/--domain` , `-S/--secrets` , `-p/--pass`
- `abra app config $APPNAME`
- `abra app secret generate $APPNAME -a`
flags: `-p/--pass` , `-a/--all`
- `abra app deploy $APPNAME`
flags: `-f/--force` , `-C/--chaos`
### undeploy and remove an app
- back up any data you don't want to lose
- `abra app undeploy $APPNAME`
- `abra app rm --volumes $APPNAME`
flags: `-f/--force` , `-V/--volumes`
### add/remove server
2023-02-01 07:16:58 +00:00
- `abra server add $SERVER`
2022-03-31 14:00:20 +00:00
- `abra server remove $SERVER`
flags: `-s/--server`
### upgrade abra
- `abra upgrade`
flags: `--rc`
### upgrade a recipe
- `abra recipe upgrade $RECIPE`
flags: `-x,y,z/--major,minor,patch`
- `abra recipe sync $RECIPE`
flags: `-x,y,z`
- `abra recipe release $RECIPE [$VERSION]`
flags: `-p/--publish` , `-r/--dry-run` , `-x,y,z`
### make a change to a recipe
- edit the files in `~/.abra/recipe/$RECIPENAME`
- deploy the changed version to your test instance
- determine how serious your change is (semver.org for reference)
- `abra recipe release $RECIPE [$VERSION]`
2023-02-20 19:47:25 +00:00
### Advanced Listing using `jq`
2023-02-20 22:07:40 +00:00
Several `abra` commands can output JSON formatted tables, and can thus be queried and filtered with the tool [jq ](https://stedolan.github.io/jq/ "jq JSON Query tool" ). We can also format these outputs with [tv ](https://github.com/uzimaru0000/tv "tv Table Viewer" ) into a pretty table.
2023-02-20 19:47:25 +00:00
Currently, `abra recipe ls` , `abra server ls` , and `abra app ls` support the `-m` machine readable output flag which outputs JSON.
#### Filter recipes by "category"
`abra recipe ls -m | jq '[.[] | select(.category == "Utilities") ]' | tv`
As you can see we, we're selecting all recipes where category is "Utilities".
#### Filter apps by state `deployed`
2023-02-20 22:05:28 +00:00
!!! info
`abra app ls -S` queries each server in your added server list, where as without the `-S` it only lists from your local copy of the sever files (thus providing no information about actual state of the apps)
2023-02-20 19:47:25 +00:00
2023-02-20 22:05:28 +00:00
!!! info
`abra app ls` lists apps grouped into a server object, with statistics about the server. In `jq` we can select the entire apps list with `.[].apps[]` .
2023-02-20 19:47:25 +00:00
`abra app ls -m -S |jq '[.[].apps[] | select(.status == "deployed") | del(.upgrade)]' |tv`
The `del(.upgrade)` filter filters out available versions for the recipe in question for that row. It could be useful to leave in if you want a list of deployed apps that need an upgrade.