Don't require weird app_ls format for abra help

This commit is contained in:
3wc 2021-01-01 01:42:17 +02:00
parent caa315e361
commit 5411c85793
1 changed files with 54 additions and 56 deletions

110
abra
View File

@ -35,7 +35,7 @@ Usage:
abra [options] server <host> apps [--status] abra [options] server <host> apps [--status]
abra [options] upgrade abra [options] upgrade
abra [options] version abra [options] version
abra [options] help [<subcommand>] abra [options] help [<subcommands>...]
Options: Options:
-e, --env=<path> Environment variables to load -e, --env=<path> Environment variables to load
@ -144,12 +144,12 @@ eval "var_$1+=($value)"; else eval "var_$1=$value"; fi; return 0; fi; done
return 1; }; stdout() { printf -- "cat <<'EOM'\n%s\nEOM\n" "$1"; }; stderr() { return 1; }; stdout() { printf -- "cat <<'EOM'\n%s\nEOM\n" "$1"; }; stderr() {
printf -- "cat <<'EOM' >&2\n%s\nEOM\n" "$1"; }; error() { printf -- "cat <<'EOM' >&2\n%s\nEOM\n" "$1"; }; error() {
[[ -n $1 ]] && stderr "$1"; stderr "$usage"; _return 1; }; _return() { [[ -n $1 ]] && stderr "$1"; stderr "$usage"; _return 1; }; _return() {
printf -- "exit %d\n" "$1"; exit "$1"; }; set -e; trimmed_doc=${DOC:1:1466} printf -- "exit %d\n" "$1"; exit "$1"; }; set -e; trimmed_doc=${DOC:1:1470}
usage=${DOC:40:1202}; digest=4e2ee usage=${DOC:40:1206}; digest=b4523
shorts=(-h -s -e '' '' '' '' '' '' '' '' '' '' '') shorts=(-h -e -s '' '' '' '' '' '' '' '' '' '' '')
longs=(--help --stack --env --server --domain --app-name --pass --auto --status --skip-check --force --no-tty --user --all) longs=(--help --env --stack --server --domain --app-name --pass --auto --status --skip-check --force --no-tty --user --all)
argcounts=(0 1 1 1 1 1 0 0 0 0 0 0 1 0); node_0(){ switch __help 0; }; node_1(){ argcounts=(0 1 1 1 1 1 0 0 0 0 0 0 1 0); node_0(){ switch __help 0; }; node_1(){
value __stack 1; }; node_2(){ value __env 2; }; node_3(){ value __server 3; } value __env 1; }; node_2(){ value __stack 2; }; node_3(){ value __server 3; }
node_4(){ value __domain 4; }; node_5(){ value __app_name 5; }; node_6(){ node_4(){ value __domain 4; }; node_5(){ value __app_name 5; }; node_6(){
switch __pass 6; }; node_7(){ switch __auto 7; }; node_8(){ switch __status 8; } switch __pass 6; }; node_7(){ switch __auto 7; }; node_8(){ switch __status 8; }
node_9(){ switch __skip_check 9; }; node_10(){ switch __force 10; }; node_11(){ node_9(){ switch __skip_check 9; }; node_10(){ switch __force 10; }; node_11(){
@ -159,30 +159,31 @@ value _service_ a; }; node_17(){ value _src_ a; }; node_18(){ value _dst_ a; }
node_19(){ value _args_ a true; }; node_20(){ value _secret_ a; }; node_21(){ node_19(){ value _args_ a true; }; node_20(){ value _secret_ a; }; node_21(){
value _version_ a; }; node_22(){ value _cmd_ a; }; node_23(){ value _data_ a; } value _version_ a; }; node_22(){ value _cmd_ a; }; node_23(){ value _data_ a; }
node_24(){ value _command_ a; }; node_25(){ value _host_ a; }; node_26(){ node_24(){ value _command_ a; }; node_25(){ value _host_ a; }; node_26(){
value _user_ a; }; node_27(){ value _port_ a; }; node_28(){ value _subcommand_ a value _user_ a; }; node_27(){ value _port_ a; }; node_28(){
}; node_29(){ _command app; }; node_30(){ _command new; }; node_31(){ value _subcommands_ a true; }; node_29(){ _command app; }; node_30(){
_command list; }; node_32(){ _command ls; }; node_33(){ _command deploy; } _command new; }; node_31(){ _command list; }; node_32(){ _command ls; }
node_34(){ _command undeploy; }; node_35(){ _command config; }; node_36(){ node_33(){ _command deploy; }; node_34(){ _command undeploy; }; node_35(){
_command delete; }; node_37(){ _command rm; }; node_38(){ _command logs; } _command config; }; node_36(){ _command delete; }; node_37(){ _command rm; }
node_39(){ _command cp; }; node_40(){ _command check; }; node_41(){ _command ps node_38(){ _command logs; }; node_39(){ _command cp; }; node_40(){
}; node_42(){ _command run; }; node_43(){ _command secret; }; node_44(){ _command check; }; node_41(){ _command ps; }; node_42(){ _command run; }
_command auto; }; node_45(){ _command generate; }; node_46(){ _command insert; } node_43(){ _command secret; }; node_44(){ _command auto; }; node_45(){
node_47(){ _command server; }; node_48(){ _command add; }; node_49(){ _command generate; }; node_46(){ _command insert; }; node_47(){ _command server
_command init; }; node_50(){ _command apps; }; node_51(){ _command upgrade; } }; node_48(){ _command add; }; node_49(){ _command init; }; node_50(){
node_52(){ _command version; }; node_53(){ _command help; }; node_54(){ _command apps; }; node_51(){ _command upgrade; }; node_52(){ _command version; }
optional 0 1 2; }; node_55(){ optional 54; }; node_56(){ optional 3; } node_53(){ _command help; }; node_54(){ optional 0 1 2; }; node_55(){
node_57(){ optional 4; }; node_58(){ optional 5; }; node_59(){ optional 6; } optional 54; }; node_56(){ optional 3; }; node_57(){ optional 4; }; node_58(){
node_60(){ optional 7; }; node_61(){ required 55 29 30 56 57 58 59 60 14; } optional 5; }; node_59(){ optional 6; }; node_60(){ optional 7; }; node_61(){
node_62(){ either 31 32; }; node_63(){ required 62; }; node_64(){ optional 8; } required 55 29 30 56 57 58 59 60 14; }; node_62(){ either 31 32; }; node_63(){
node_65(){ required 55 29 63 64 56; }; node_66(){ optional 9; }; node_67(){ required 62; }; node_64(){ optional 8; }; node_65(){ required 55 29 63 64 56; }
required 55 29 15 33 66; }; node_68(){ required 55 29 15 34; }; node_69(){ node_66(){ optional 9; }; node_67(){ required 55 29 15 33 66; }; node_68(){
required 55 29 15 35; }; node_70(){ either 36 37; }; node_71(){ required 70; } required 55 29 15 34; }; node_69(){ required 55 29 15 35; }; node_70(){
node_72(){ optional 10; }; node_73(){ required 55 29 15 71 72; }; node_74(){ either 36 37; }; node_71(){ required 70; }; node_72(){ optional 10; }
optional 16; }; node_75(){ required 55 29 15 38 74; }; node_76(){ node_73(){ required 55 29 15 71 72; }; node_74(){ optional 16; }; node_75(){
required 55 29 15 39 17 18; }; node_77(){ required 55 29 15 40; }; node_78(){ required 55 29 15 38 74; }; node_76(){ required 55 29 15 39 17 18; }; node_77(){
required 55 29 15 41; }; node_79(){ optional 11; }; node_80(){ optional 12; } required 55 29 15 40; }; node_78(){ required 55 29 15 41; }; node_79(){
node_81(){ oneormore 19; }; node_82(){ required 55 29 15 42 79 80 16 81; } optional 11; }; node_80(){ optional 12; }; node_81(){ oneormore 19; }
node_83(){ required 55 29 15 43 44 59; }; node_84(){ optional 22; }; node_85(){ node_82(){ required 55 29 15 42 79 80 16 81; }; node_83(){
required 55 29 15 43 44 59; }; node_84(){ optional 22; }; node_85(){
required 55 29 15 43 45 20 21 84 59; }; node_86(){ required 55 29 15 43 45 20 21 84 59; }; node_86(){
required 55 29 15 43 46 20 21 23 59; }; node_87(){ either 20 13; }; node_88(){ required 55 29 15 43 46 20 21 23 59; }; node_87(){ either 20 13; }; node_88(){
required 87; }; node_89(){ required 55 29 15 43 71 88 59 72; }; node_90(){ required 87; }; node_89(){ required 55 29 15 43 71 88 59 72; }; node_90(){
@ -190,36 +191,36 @@ optional 81; }; node_91(){ required 55 29 15 24 90; }; node_92(){ optional 26; }
node_93(){ optional 27; }; node_94(){ required 55 47 48 25 92 93; }; node_95(){ node_93(){ optional 27; }; node_94(){ required 55 47 48 25 92 93; }; node_95(){
required 55 47 63; }; node_96(){ required 55 47 25 37; }; node_97(){ required 55 47 63; }; node_96(){ required 55 47 25 37; }; node_97(){
required 55 47 25 49; }; node_98(){ required 55 47 25 50 64; }; node_99(){ required 55 47 25 49; }; node_98(){ required 55 47 25 50 64; }; node_99(){
required 55 51; }; node_100(){ required 55 52; }; node_101(){ optional 28; } required 55 51; }; node_100(){ required 55 52; }; node_101(){ oneormore 28; }
node_102(){ required 55 53 101; }; node_103(){ node_102(){ optional 101; }; node_103(){ required 55 53 102; }; node_104(){
either 61 65 67 68 69 73 75 76 77 78 82 83 85 86 89 91 94 95 96 97 98 99 100 102 either 61 65 67 68 69 73 75 76 77 78 82 83 85 86 89 91 94 95 96 97 98 99 100 103
}; node_104(){ required 103; }; cat <<<' docopt_exit() { }; node_105(){ required 104; }; cat <<<' docopt_exit() {
[[ -n $1 ]] && printf "%s\n" "$1" >&2; printf "%s\n" "${DOC:40:1202}" >&2 [[ -n $1 ]] && printf "%s\n" "$1" >&2; printf "%s\n" "${DOC:40:1206}" >&2
exit 1; }'; unset var___help var___stack var___env var___server var___domain \ exit 1; }'; unset var___help var___env var___stack var___server var___domain \
var___app_name var___pass var___auto var___status var___skip_check var___force \ var___app_name var___pass var___auto var___status var___skip_check var___force \
var___no_tty var___user var___all var__type_ var__app_ var__service_ var__src_ \ var___no_tty var___user var___all var__type_ var__app_ var__service_ var__src_ \
var__dst_ var__args_ var__secret_ var__version_ var__cmd_ var__data_ \ var__dst_ var__args_ var__secret_ var__version_ var__cmd_ var__data_ \
var__command_ var__host_ var__user_ var__port_ var__subcommand_ var_app \ var__command_ var__host_ var__user_ var__port_ var__subcommands_ var_app \
var_new var_list var_ls var_deploy var_undeploy var_config var_delete var_rm \ var_new var_list var_ls var_deploy var_undeploy var_config var_delete var_rm \
var_logs var_cp var_check var_ps var_run var_secret var_auto var_generate \ var_logs var_cp var_check var_ps var_run var_secret var_auto var_generate \
var_insert var_server var_add var_init var_apps var_upgrade var_version var_help var_insert var_server var_add var_init var_apps var_upgrade var_version var_help
parse 104 "$@"; local prefix=${DOCOPT_PREFIX:-''}; unset "${prefix}__help" \ parse 105 "$@"; local prefix=${DOCOPT_PREFIX:-''}; unset "${prefix}__help" \
"${prefix}__stack" "${prefix}__env" "${prefix}__server" "${prefix}__domain" \ "${prefix}__env" "${prefix}__stack" "${prefix}__server" "${prefix}__domain" \
"${prefix}__app_name" "${prefix}__pass" "${prefix}__auto" "${prefix}__status" \ "${prefix}__app_name" "${prefix}__pass" "${prefix}__auto" "${prefix}__status" \
"${prefix}__skip_check" "${prefix}__force" "${prefix}__no_tty" \ "${prefix}__skip_check" "${prefix}__force" "${prefix}__no_tty" \
"${prefix}__user" "${prefix}__all" "${prefix}_type_" "${prefix}_app_" \ "${prefix}__user" "${prefix}__all" "${prefix}_type_" "${prefix}_app_" \
"${prefix}_service_" "${prefix}_src_" "${prefix}_dst_" "${prefix}_args_" \ "${prefix}_service_" "${prefix}_src_" "${prefix}_dst_" "${prefix}_args_" \
"${prefix}_secret_" "${prefix}_version_" "${prefix}_cmd_" "${prefix}_data_" \ "${prefix}_secret_" "${prefix}_version_" "${prefix}_cmd_" "${prefix}_data_" \
"${prefix}_command_" "${prefix}_host_" "${prefix}_user_" "${prefix}_port_" \ "${prefix}_command_" "${prefix}_host_" "${prefix}_user_" "${prefix}_port_" \
"${prefix}_subcommand_" "${prefix}app" "${prefix}new" "${prefix}list" \ "${prefix}_subcommands_" "${prefix}app" "${prefix}new" "${prefix}list" \
"${prefix}ls" "${prefix}deploy" "${prefix}undeploy" "${prefix}config" \ "${prefix}ls" "${prefix}deploy" "${prefix}undeploy" "${prefix}config" \
"${prefix}delete" "${prefix}rm" "${prefix}logs" "${prefix}cp" "${prefix}check" \ "${prefix}delete" "${prefix}rm" "${prefix}logs" "${prefix}cp" "${prefix}check" \
"${prefix}ps" "${prefix}run" "${prefix}secret" "${prefix}auto" \ "${prefix}ps" "${prefix}run" "${prefix}secret" "${prefix}auto" \
"${prefix}generate" "${prefix}insert" "${prefix}server" "${prefix}add" \ "${prefix}generate" "${prefix}insert" "${prefix}server" "${prefix}add" \
"${prefix}init" "${prefix}apps" "${prefix}upgrade" "${prefix}version" \ "${prefix}init" "${prefix}apps" "${prefix}upgrade" "${prefix}version" \
"${prefix}help"; eval "${prefix}"'__help=${var___help:-false}' "${prefix}help"; eval "${prefix}"'__help=${var___help:-false}'
eval "${prefix}"'__stack=${var___stack:-}'
eval "${prefix}"'__env=${var___env:-}' eval "${prefix}"'__env=${var___env:-}'
eval "${prefix}"'__stack=${var___stack:-}'
eval "${prefix}"'__server=${var___server:-}' eval "${prefix}"'__server=${var___server:-}'
eval "${prefix}"'__domain=${var___domain:-}' eval "${prefix}"'__domain=${var___domain:-}'
eval "${prefix}"'__app_name=${var___app_name:-}' eval "${prefix}"'__app_name=${var___app_name:-}'
@ -243,8 +244,10 @@ eval "${prefix}"'_command_=${var__command_:-}'
eval "${prefix}"'_host_=${var__host_:-}' eval "${prefix}"'_host_=${var__host_:-}'
eval "${prefix}"'_user_=${var__user_:-}' eval "${prefix}"'_user_=${var__user_:-}'
eval "${prefix}"'_port_=${var__port_:-}' eval "${prefix}"'_port_=${var__port_:-}'
eval "${prefix}"'_subcommand_=${var__subcommand_:-}' if declare -p var__subcommands_ >/dev/null 2>&1; then
eval "${prefix}"'app=${var_app:-false}'; eval "${prefix}"'new=${var_new:-false}' eval "${prefix}"'_subcommands_=("${var__subcommands_[@]}")'; else
eval "${prefix}"'_subcommands_=()'; fi; eval "${prefix}"'app=${var_app:-false}'
eval "${prefix}"'new=${var_new:-false}'
eval "${prefix}"'list=${var_list:-false}'; eval "${prefix}"'ls=${var_ls:-false}' eval "${prefix}"'list=${var_list:-false}'; eval "${prefix}"'ls=${var_ls:-false}'
eval "${prefix}"'deploy=${var_deploy:-false}' eval "${prefix}"'deploy=${var_deploy:-false}'
eval "${prefix}"'undeploy=${var_undeploy:-false}' eval "${prefix}"'undeploy=${var_undeploy:-false}'
@ -266,7 +269,7 @@ eval "${prefix}"'upgrade=${var_upgrade:-false}'
eval "${prefix}"'version=${var_version:-false}' eval "${prefix}"'version=${var_version:-false}'
eval "${prefix}"'help=${var_help:-false}'; local docopt_i=1 eval "${prefix}"'help=${var_help:-false}'; local docopt_i=1
[[ $BASH_VERSION =~ ^4.3 ]] && docopt_i=2; for ((;docopt_i>0;docopt_i--)); do [[ $BASH_VERSION =~ ^4.3 ]] && docopt_i=2; for ((;docopt_i>0;docopt_i--)); do
declare -p "${prefix}__help" "${prefix}__stack" "${prefix}__env" \ declare -p "${prefix}__help" "${prefix}__env" "${prefix}__stack" \
"${prefix}__server" "${prefix}__domain" "${prefix}__app_name" \ "${prefix}__server" "${prefix}__domain" "${prefix}__app_name" \
"${prefix}__pass" "${prefix}__auto" "${prefix}__status" \ "${prefix}__pass" "${prefix}__auto" "${prefix}__status" \
"${prefix}__skip_check" "${prefix}__force" "${prefix}__no_tty" \ "${prefix}__skip_check" "${prefix}__force" "${prefix}__no_tty" \
@ -274,7 +277,7 @@ declare -p "${prefix}__help" "${prefix}__stack" "${prefix}__env" \
"${prefix}_service_" "${prefix}_src_" "${prefix}_dst_" "${prefix}_args_" \ "${prefix}_service_" "${prefix}_src_" "${prefix}_dst_" "${prefix}_args_" \
"${prefix}_secret_" "${prefix}_version_" "${prefix}_cmd_" "${prefix}_data_" \ "${prefix}_secret_" "${prefix}_version_" "${prefix}_cmd_" "${prefix}_data_" \
"${prefix}_command_" "${prefix}_host_" "${prefix}_user_" "${prefix}_port_" \ "${prefix}_command_" "${prefix}_host_" "${prefix}_user_" "${prefix}_port_" \
"${prefix}_subcommand_" "${prefix}app" "${prefix}new" "${prefix}list" \ "${prefix}_subcommands_" "${prefix}app" "${prefix}new" "${prefix}list" \
"${prefix}ls" "${prefix}deploy" "${prefix}undeploy" "${prefix}config" \ "${prefix}ls" "${prefix}deploy" "${prefix}undeploy" "${prefix}config" \
"${prefix}delete" "${prefix}rm" "${prefix}logs" "${prefix}cp" "${prefix}check" \ "${prefix}delete" "${prefix}rm" "${prefix}logs" "${prefix}cp" "${prefix}check" \
"${prefix}ps" "${prefix}run" "${prefix}secret" "${prefix}auto" \ "${prefix}ps" "${prefix}run" "${prefix}secret" "${prefix}auto" \
@ -1090,16 +1093,17 @@ sub_version() {
###### .. help ###### .. help
sub_help() { sub_help() {
if [ -z "$abra__subcommand_" ]; then SUBCOMMAND=$(IFS="_"; echo "${abra__subcommands_[*]}")
if [ -z "$SUBCOMMAND" ]; then
printf "%s" "$DOC" printf "%s" "$DOC"
exit exit
fi fi
HELP_CMD="help_${abra__subcommand_}" HELP_CMD="help_${SUBCOMMAND}"
if type "$HELP_CMD" > /dev/null 2>&1; then if type "$HELP_CMD" > /dev/null 2>&1; then
"$HELP_CMD" "$HELP_CMD"
else else
HELP_COMMANDS=$(declare -Ff | grep 'help_' | cut -d' ' -f3) HELP_COMMANDS=$(declare -Ff | grep 'help_' | cut -d' ' -f3)
error "No help found for '$abra__subcommand_' error "No help found for '$abra__subcommands_'
Try one of these: Try one of these:
${HELP_COMMANDS//help_/}" ${HELP_COMMANDS//help_/}"
@ -1138,15 +1142,9 @@ abra() {
declare abra___stack abra___env abra__command_ abra__args_ \ declare abra___stack abra___env abra__command_ abra__args_ \
abra__secret_ abra__version_ abra__data_ abra___user abra__host_ \ abra__secret_ abra__version_ abra__data_ abra___user abra__host_ \
abra__type_ abra__port_ abra__user_ abra__service_ abra__src_ abra__dst_ \ abra__type_ abra__port_ abra__user_ abra__service_ abra__src_ abra__dst_ \
<<<<<<< HEAD abra___server abra___domain abra___force abra___pass \
abra__app_ abra___server abra___domain abra___force abra___pass \
abra___auto abra___status abra___no_tty abra___skip_check \ abra___auto abra___status abra___no_tty abra___skip_check \
abra___app_name abra__subcommands_ abra___app_name
=======
abra__domain_ abra___server abra___domain abra___force abra___pass \
abra___auto abra___status abra___no_tty abra___skip_check \
abra__subcommand_
>>>>>>> 7ec625e... Add per-subcommand help
if ! type tput > /dev/null 2>&1; then if ! type tput > /dev/null 2>&1; then
tput() { tput() {