Docs & comments

This commit is contained in:
3wc 2021-03-14 03:33:22 +02:00
parent fd655274f8
commit 1a649c56cb

58
abra
View File

@ -611,13 +611,14 @@ sub_app_ls (){
} }
help_app_list (){ help_app_list (){
echo "abra [options] app (list|ls) [--status] [--server=<server>] echo "abra [options] app (list|ls) [--status] [--server=<server>] [--type=<type>]
List your exciting apps. List your exciting apps.
OPTIONS OPTIONS
--status Show whether apps are deployed (warning! slow!) --status Show whether apps are deployed (warning! slow!)
--server=<server> Filter to a specific server --server=<server> Only show apps on a specific server
--type=<type> Only show apps of the given type
POWERED BY (for --status) POWERED BY (for --status)
docker stack ls" docker stack ls"
@ -697,15 +698,16 @@ sub_app_list (){
###### .. app new ###### .. app new
help_app_new (){ help_app_new (){
echo "abra [options] app new [--server=<server>] [--domain=<domain>] [--pass] [--auto] <type> echo "abra [options] app new [--app-name=<app_name>] [--server=<server>] [--domain=<domain>] [--pass] [--secrets] <type>
Create a new app of <type> (e.g. wordpress or custom-html). Create a new app of <type> (e.g. wordpress or custom-html).
OPTIONS OPTIONS
--server=<server> Specify which server to use (default: prompt) --server=<server> Specify which server to use (default: prompt)
--domain=<domain> Set the domain name (default: prompt) --domain=<domain> Set the domain name (default: prompt)
--auto Auto-generate secrets (default: no) --app-name=<app-name> Set the app name (default: prompt)
--pass Store generated secrets in pass (default: no)" --secrets Auto-generate secrets (default: no)
--pass Store generated secrets in pass (default: no)"
} }
sub_app_new (){ sub_app_new (){
@ -714,9 +716,9 @@ sub_app_new (){
require_abra_dir require_abra_dir
get_servers get_servers
# Note(decentral1se): we are overloading the use of the word "app" on the # decentral1se: we are overloading the use of the word "app" in the
# interface and therefore try to use the word "type" to refer to "a type of # command-line interface to mean two things -- in the code, we differentiate
# app" vs. "an instance of an app" # between them as $APP ("an instance of an app") and $TYPE ("a kind of app")
TYPE=$abra__type_ TYPE=$abra__type_
SERVER=$abra___server SERVER=$abra___server
@ -749,6 +751,9 @@ sub_app_new (){
fi fi
if [ -z "$APP_NAME" ]; then if [ -z "$APP_NAME" ]; then
# e.g.:
# TYPE=custom-html, DOMAIN=foo.bar-baz.com
# -> custom_html_foo_bar_baz_com
DEFAULT_NAME="${TYPE/-/_}_${DOMAIN//+([.-])/_}" DEFAULT_NAME="${TYPE/-/_}_${DOMAIN//+([.-])/_}"
read -rp "App name [$DEFAULT_NAME]: " APP_NAME read -rp "App name [$DEFAULT_NAME]: " APP_NAME
if [ -z "$APP_NAME" ]; then if [ -z "$APP_NAME" ]; then
@ -757,6 +762,8 @@ sub_app_new (){
fi fi
if [ ${#APP_NAME} -gt 45 ]; then if [ ${#APP_NAME} -gt 45 ]; then
# 3wc: Docker won't create secret names > 64 characters -- setting a
# 45-character limit here is enough for all our secrets so far.
error "$APP_NAME cannot be longer than 45 characters in length" error "$APP_NAME cannot be longer than 45 characters in length"
fi fi
@ -764,7 +771,6 @@ sub_app_new (){
if [ -f "$ENV_FILE" ]; then if [ -f "$ENV_FILE" ]; then
error "$ENV_FILE already exists" error "$ENV_FILE already exists"
# FIXME 3wc: offer to user $STACK_$DOMAIN.env name instead
fi fi
cp "$APP_DIR/.env.sample" "$ENV_FILE" cp "$APP_DIR/.env.sample" "$ENV_FILE"
@ -1058,7 +1064,12 @@ volumes and secrets can be removed with this command.
OPTIONS OPTIONS
--force Live dangerously; skip prompt for confirmation --force Live dangerously; skip prompt for confirmation
--volumes Delete all storage volumes --volumes Delete all storage volumes
--secrets Delete all secrets" --secrets Delete all secrets
POWERED BY
docker volume ls / docker volume rm
docker secret ls / docker secret rm
"
} }
sub_app_delete (){ sub_app_delete (){
@ -1104,7 +1115,10 @@ help_app_secret_insert (){
Store <data> as a Docker secret called <secret>_<version>. Store <data> as a Docker secret called <secret>_<version>.
OPTIONS OPTIONS
--pass Save the secret in \`pass\` as well" --pass Save the secret in \`pass\` as well
POWERED BY
docker secret insert"
} }
sub_app_secret_insert() { sub_app_secret_insert() {
SECRET="$abra__secret_" SECRET="$abra__secret_"
@ -1142,7 +1156,11 @@ Remove <app>'s Docker secret <secret>.
OPTIONS OPTIONS
--pass Remove secret(s) from \`pass\` as well --pass Remove secret(s) from \`pass\` as well
--all Delete all secrets for <app> --all Delete all secrets for <app>
--force Live dangerously; skip prompt for confirmation" --force Live dangerously; skip prompt for confirmation
POWERED BY
docker secret rm
docker secret ls (for --all)"
} }
sub_app_secret_delete(){ sub_app_secret_delete(){
@ -1182,7 +1200,10 @@ OPTIONS
<version> Specify secret version (for single secret) <version> Specify secret version (for single secret)
--all Auto-generate all secrets --all Auto-generate all secrets
<cmd> Run <cmd> to generate secret (default: pwqgen) <cmd> Run <cmd> to generate secret (default: pwqgen)
--pass Save generated secrets in \`pass\`" --pass Save generated secrets in \`pass\`
POWERED BY
docker secret insert"
} }
sub_app_secret_generate(){ sub_app_secret_generate(){
@ -1288,6 +1309,7 @@ EXAMPLES
abra app wordpress rollback app abra app wordpress rollback app
POWERED BY POWERED BY
CONTAINER_ID=\$(docker container ls -f ...)
docker service rollback \$CONTAINER_ID ..." docker service rollback \$CONTAINER_ID ..."
} }
@ -1354,8 +1376,8 @@ If <dst> is a file then it will be over-written, if it is a folder then <src>
will be copied into it. will be copied into it.
EXAMPLES EXAMPLES
abra customhtml_foo_bar_com cp index.html app:/usr/share/nginx/html/ abra app customhtml_foo_bar_com cp index.html app:/usr/share/nginx/html/
tar cf - wp-content | abra wordpress_bar_bat_com cp - app:/var/www/html/ tar cf - wp-content | abra app wordpress_bar_bat_com cp - app:/var/www/html/
POWERED BY POWERED BY
CONTAINER_ID=\$(docker container ls -f ...) CONTAINER_ID=\$(docker container ls -f ...)
@ -1519,7 +1541,7 @@ sub_server_new() {
source "$ABRA_DIR/plugins/abra-$PROVIDER/abra-$PROVIDER" source "$ABRA_DIR/plugins/abra-$PROVIDER/abra-$PROVIDER"
} }
##host> delete ###### .. server delete
help_server_rm (){ help_server_rm (){
help_server_delete help_server_delete
} }