250
									
								
								abra
									
									
									
									
									
								
							
							
						
						
									
										250
									
								
								abra
									
									
									
									
									
								
							| @ -510,11 +510,14 @@ sub_app_ls (){ | ||||
| help_app_list (){ | ||||
|   echo "abra [options] app (list|ls) [--status] [--server=<server>] | ||||
|  | ||||
| List your exciting apps | ||||
| List your exciting apps. | ||||
|  | ||||
| OPTIONS | ||||
|   --status           Show whether apps are deployed (warning! slow!) | ||||
|   --server=<server>  Filter to a specific server" | ||||
|   --server=<server>  Filter to a specific server | ||||
|  | ||||
| POWERED BY (for --status) | ||||
|   docker stack ls" | ||||
| } | ||||
|  | ||||
| sub_app_list (){ | ||||
| @ -588,7 +591,7 @@ sub_app_list (){ | ||||
| help_app_new (){ | ||||
|   echo "abra [options] app new [--server=<server>] [--domain=<domain>] [--pass] [--auto] <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 | ||||
|   --server=<server>  Specify which server to use (default: prompt) | ||||
| @ -669,15 +672,19 @@ sub_app_new (){ | ||||
|   echo "    abra app $APP_NAME deploy$(tput sgr0)" | ||||
| } | ||||
|  | ||||
| ###### .. app <domain> deploy | ||||
| ###### .. app deploy | ||||
| help_app_deploy (){ | ||||
|   echo "abra [options] app <domain> deploy [--skip-check] | ||||
|  | ||||
| Deploy app <domain> to the configured server | ||||
| Deploy app <domain> to the configured server. | ||||
|  | ||||
| OPTIONS | ||||
|   --skip-check    Don't check whether app definition is up-to-date first" | ||||
|   --skip-check    Don't check whether app definition is up-to-date first | ||||
|  | ||||
| POWERED BY | ||||
|   docker stack deploy -c compose.yml <app>" | ||||
| } | ||||
|  | ||||
| sub_app_deploy (){ | ||||
|   load_instance | ||||
|   load_instance_env | ||||
| @ -725,6 +732,15 @@ sub_app_deploy (){ | ||||
| } | ||||
|  | ||||
| ###### .. app <domain> undeploy | ||||
| help_app_undeploy (){ | ||||
|   echo "abra [options] app <app> undeploy | ||||
|  | ||||
| Opposite of \`app <app> deploy\`; deactivate an app without deleting anything. | ||||
|  | ||||
| POWERED BY | ||||
|   docker stack rm <app>" | ||||
| } | ||||
|  | ||||
| sub_app_undeploy (){ | ||||
|   load_instance | ||||
|   load_instance_env | ||||
| @ -735,7 +751,13 @@ sub_app_undeploy (){ | ||||
|   docker stack rm "$STACK_NAME" | ||||
| } | ||||
|  | ||||
| ###### .. app <domain> config | ||||
| ###### .. app config | ||||
| help_app_config (){ | ||||
|   echo "abra [options] app <app> config | ||||
|  | ||||
| Open the app configuration in \$EDITOR." | ||||
| } | ||||
|  | ||||
| sub_app_config (){ | ||||
|   load_instance | ||||
|  | ||||
| @ -768,6 +790,12 @@ sub_app_config (){ | ||||
| } | ||||
|  | ||||
| ###### .. app check | ||||
| help_app_check (){ | ||||
|   echo "abra [options] app <app> check | ||||
|  | ||||
| Make sure that all an app's required variables are set." | ||||
| } | ||||
|  | ||||
| sub_app_check (){ | ||||
|   load_instance | ||||
|   load_instance_env | ||||
| @ -789,6 +817,15 @@ sub_app_check (){ | ||||
| } | ||||
|  | ||||
| ###### .. app ps | ||||
| help_app_ps (){ | ||||
|   echo "abra [options] app <app> ps | ||||
|  | ||||
| Show <app>'s running containers. | ||||
|  | ||||
| POWERED BY | ||||
|   docker stack ps <app>" | ||||
| } | ||||
|  | ||||
| sub_app_ps (){ | ||||
|   load_instance | ||||
|   load_instance_env | ||||
| @ -796,11 +833,24 @@ sub_app_ps (){ | ||||
|   docker stack ps "$STACK_NAME" | ||||
| } | ||||
|  | ||||
| ###### .. app <domain> delete | ||||
| ###### .. app delete | ||||
| help_app_rm (){ | ||||
|   help_app_delete | ||||
| } | ||||
|  | ||||
| sub_app_rm (){ | ||||
|   sub_app_delete | ||||
| } | ||||
|  | ||||
| help_app_delete (){ | ||||
|   echo "abra [options] app <app> (rm|delete) [--force] | ||||
|  | ||||
| Delete local configuration for <app>. | ||||
|  | ||||
| OPTIONS | ||||
|   --force   Live dangerously; skip prompt for confirmation" | ||||
| } | ||||
|  | ||||
| sub_app_delete (){ | ||||
|   load_instance | ||||
|   load_instance_env | ||||
| @ -813,7 +863,15 @@ sub_app_delete (){ | ||||
|   rm "$ENV_FILE" | ||||
| } | ||||
|  | ||||
| ###### .. app <domain> secret insert | ||||
| ###### .. app secret insert | ||||
| help_app_secret_insert (){ | ||||
|   echo "abra [options] app <app> secret insert <secret> <version> <data> [--pass] | ||||
|  | ||||
| Store <data> as a Docker secret called <secret>_<version>. | ||||
|  | ||||
| OPTIONS | ||||
|   --pass     Save the secret in \`pass\` as well" | ||||
| } | ||||
| sub_app_secret_insert() { | ||||
|   load_instance | ||||
|   load_instance_env | ||||
| @ -836,12 +894,27 @@ sub_app_secret_insert() { | ||||
|   fi | ||||
| } | ||||
|  | ||||
| ###### .. app <domain> secret delete | ||||
| sub_app_secret_delete(){ | ||||
|   sub_app_secret_rm | ||||
| ###### .. app secret delete | ||||
| help_app_secret_rm (){ | ||||
|   help_app_secret_delete | ||||
| } | ||||
|  | ||||
| sub_app_secret_rm(){ | ||||
|   sub_app_secret_delete | ||||
| } | ||||
|  | ||||
| help_app_secret_delete (){ | ||||
|   echo "abra [options] app <app> secret (delete|rm) (<secret>|--all) [--pass] [--force] | ||||
|  | ||||
| Remove <app>'s Docker secret <secret>. | ||||
|  | ||||
| OPTIONS | ||||
|   --pass     Remove secret(s) from \`pass\` as well | ||||
|   --all      Delete all secrets for <app> | ||||
|   --force   Live dangerously; skip prompt for confirmation" | ||||
| } | ||||
|  | ||||
| sub_app_secret_delete(){ | ||||
|   load_instance | ||||
|   load_instance_env | ||||
|  | ||||
| @ -870,7 +943,17 @@ sub_app_secret_rm(){ | ||||
|   done | ||||
| } | ||||
|  | ||||
| ###### .. app <domain> secret generate | ||||
| ###### .. app secret generate | ||||
| help_app_secret_generate (){ | ||||
|   echo "abra [options] app <app> secret generate <secret> <version> [<cmd>] [--pass] | ||||
|  | ||||
| Generate <secret>_<version> for <app> and store as a Docker secret. | ||||
|  | ||||
| OPTIONS | ||||
|   <cmd>     Run <cmd> to generate secret (default: pwqgen) | ||||
|   --pass    Save generated secrets in \`pass\`" | ||||
| } | ||||
|  | ||||
| sub_app_secret_generate(){ | ||||
|   load_instance | ||||
|   load_instance_env | ||||
| @ -917,7 +1000,26 @@ sub_app_secret_auto(){ | ||||
|   done | ||||
| } | ||||
|  | ||||
| ###### .. app <domain> run <args>... | ||||
| ###### .. app run | ||||
| help_app_run (){ | ||||
|   echo "abra [options] app <app> run [--no-tty] [--user=<user>] <service> <args>... | ||||
|  | ||||
| Run <args>... (often something like 'bash' or 'sh') in <app>'s <service> | ||||
| container. | ||||
|  | ||||
| OPTIONS | ||||
|   --no-tty        Don't allocate a TTY; sometimes running \`mysql\` enjoys this | ||||
|   --user=<user>   Run as the UNIX user <user>, e.g. for running Wordpress-CLI  | ||||
|                   as www-data | ||||
|  | ||||
| EXAMPLES | ||||
|   abra wordpress_foo_bar run app bash | ||||
|  | ||||
| POWERED BY | ||||
|   CONTAINER_ID=\$(docker container ls -f ...) | ||||
|   docker exec \$CONTAINER_ID ..." | ||||
| } | ||||
|  | ||||
| sub_app_run(){ | ||||
|   load_instance | ||||
|   load_instance_env | ||||
| @ -948,7 +1050,23 @@ sub_app_run(){ | ||||
|   return | ||||
| } | ||||
|  | ||||
| ###### .. app <domain> logs <service> <args>... | ||||
| ###### .. app logs | ||||
| help_app_logs (){ | ||||
|   echo "abra [options] app <app> logs [<service>] | ||||
|  | ||||
| Show logs for <app>. | ||||
|  | ||||
| OPTIONS | ||||
|   <service>   Only show logs for a specific service (default: combine all | ||||
|               services) | ||||
|  | ||||
| EXAMPLES | ||||
|   abra wordpress_foo_bar logs app | ||||
|  | ||||
| POWERED BY | ||||
|   docker service logs" | ||||
| } | ||||
|  | ||||
| sub_app_logs (){ | ||||
|   load_instance | ||||
|   load_instance_env | ||||
| @ -978,7 +1096,29 @@ sub_app_logs (){ | ||||
|   docker service logs "${STACK_NAME}_${SERVICE}" $LOGS_ARGS | ||||
| } | ||||
|  | ||||
| ###### .. app <domain> cp <src> <dst> | ||||
| ###### .. app cp | ||||
| help_app_cp (){ | ||||
|   echo "abra [options] app <app> cp <src> <dst> | ||||
|  | ||||
| Copy files to or from a running container. | ||||
|  | ||||
| One of <src> or <dst> must have the format <service>:<path>. | ||||
|  | ||||
| Copying multiple files is possible using \`tar\`, see EXAMPLES. | ||||
|  | ||||
| If <dst> is a file then it will be over-written, if it is a folder then <src> | ||||
| will be copied into it. | ||||
|  | ||||
| EXAMPLES | ||||
|   abra 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/ | ||||
|  | ||||
| POWERED BY | ||||
|   CONTAINER_ID=\$(docker container ls -f ...) | ||||
|   docker cp \$CONTAINER_ID:<src> <dst> | ||||
|   docker cp \$CONTAINER_ID:<dst> <src>" | ||||
| } | ||||
|  | ||||
| sub_app_cp() { | ||||
|   load_instance | ||||
|   load_instance_env | ||||
| @ -1018,10 +1158,20 @@ sub_app_cp() { | ||||
| ####################################### | ||||
|  | ||||
| ###### .. server ls | ||||
| help_server_ls (){ | ||||
|   help_server_list | ||||
| } | ||||
|  | ||||
| sub_server_ls() { | ||||
|   sub_server_list | ||||
| } | ||||
|  | ||||
| help_server_list (){ | ||||
|   echo "abra [options] server (list|ls) | ||||
|  | ||||
| List locally-defined servers." | ||||
| } | ||||
|  | ||||
| sub_server_list() { | ||||
|   get_servers | ||||
|   printf "%s servers:\n\n" "${#SERVERS[@]}" | ||||
| @ -1030,7 +1180,17 @@ sub_server_list() { | ||||
|   done | ||||
| } | ||||
|  | ||||
| ###### .. server init <host> | ||||
| ###### .. server init | ||||
| help_server_init (){ | ||||
|   echo "abra [options] server init | ||||
|  | ||||
| Set up a server for Docker swarm joy. | ||||
|  | ||||
| POWERED BY | ||||
|   docker swarm init | ||||
|   docker network create ..." | ||||
| } | ||||
|  | ||||
| sub_server_init() { | ||||
|   export DOCKER_CONTEXT="${abra__host_}" | ||||
|  | ||||
| @ -1040,7 +1200,19 @@ sub_server_init() { | ||||
|   docker network create --driver=overlay proxy --scope swarm || true | ||||
| } | ||||
|  | ||||
| ###### .. server <add> <host> [<username>] [<password>] | ||||
| ###### .. server add | ||||
| help_server_add (){ | ||||
|   echo "abra [options] server add <host> [<user>] [<port>] | ||||
|  | ||||
| Add a server, reachable on <host>. | ||||
|  | ||||
| OPTIONS | ||||
|   <user>, <port>    SSH connection details | ||||
|  | ||||
| POWERED BY | ||||
|   docker context create ..." | ||||
| } | ||||
|  | ||||
| sub_server_add() { | ||||
|   require_abra_dir | ||||
|  | ||||
| @ -1064,14 +1236,40 @@ sub_server_add() { | ||||
| } | ||||
|  | ||||
| ###### .. server <host> delete | ||||
| help_server_rm (){ | ||||
|   help_server_delete | ||||
| } | ||||
|  | ||||
| sub_server_rm() { | ||||
|   sub_server_delete | ||||
| } | ||||
|  | ||||
| help_server_delete (){ | ||||
|   echo "abra [options] server <host> delete | ||||
|  | ||||
| Remove server <host> | ||||
|  | ||||
| POWERED BY | ||||
|   docker context rm ..." | ||||
| } | ||||
|  | ||||
| sub_server_delete() { | ||||
|   docker context rm  "$abra__host_" | ||||
| } | ||||
|  | ||||
| ###### .. server <host> apps | ||||
| help_server_apps (){ | ||||
|   echo "abra [options] server <host> apps [--status] | ||||
|  | ||||
| Alias for \`abra app ls --server=<host>. | ||||
|  | ||||
| OPTIONS | ||||
|   --status           Show whether apps are deployed (warning! slow!) | ||||
|  | ||||
| POWERED BY (for --status) | ||||
|   docker stack ls" | ||||
| } | ||||
|  | ||||
| sub_server_apps() { | ||||
|   abra___server="$abra__host_" | ||||
|   sub_app_list | ||||
| @ -1082,16 +1280,32 @@ sub_server_apps() { | ||||
| ####################################### | ||||
|  | ||||
| ###### .. upgrade | ||||
| help_upgrade (){ | ||||
|   echo "abra [options] upgrade | ||||
|  | ||||
| Upgrade abra itself, using the online installer script." | ||||
| } | ||||
|  | ||||
| sub_upgrade() { | ||||
|   curl https://install.abra.autonomic.zone | bash | ||||
| } | ||||
|  | ||||
| ###### .. version | ||||
| help_version (){ | ||||
|   echo "abra [options] version | ||||
|  | ||||
| Show the installed version of abra (currently $ABRA_VERSION)." | ||||
| } | ||||
|  | ||||
| sub_version() { | ||||
|   echo "$ABRA_VERSION" | ||||
| } | ||||
|  | ||||
| ###### .. help | ||||
| help_help (){ | ||||
|   echo "HEEEEEELP! 😱" | ||||
| } | ||||
|  | ||||
| sub_help() { | ||||
|   SUBCOMMAND=$(IFS="_"; echo "${abra__subcommands_[*]}") | ||||
|   if [ -z "$SUBCOMMAND" ]; then | ||||
|  | ||||
		Reference in New Issue
	
	Block a user