#!/usr/bin/env bash [[ " apps apps:create apps:destroy help apps:help " == *" $1 "* ]] || exit $DOKKU_NOT_IMPLEMENTED_EXIT set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" case "$1" in apps) dokku_log_info2_quiet "My Apps" find $DOKKU_ROOT -follow -maxdepth 1 -type d \( ! -iname ".*" \) -not -path $DOKKU_ROOT/tls | sed 's|^\./||g' | sed 's|'$DOKKU_ROOT'\/||' | tail -n +2 | sort ;; apps:create) [[ -z $2 ]] && dokku_log_fail "Please specify an app to run the command on" [[ -d "$DOKKU_ROOT/$2" ]] && dokku_log_fail "Name is already taken" APP="$2" mkdir -p "$DOKKU_ROOT/$APP" echo "Creating $APP... done" ;; apps:destroy) [[ -z $2 ]] && dokku_log_fail "Please specify an app to run the command on" [[ "$2" == "tls" ]] && dokku_log_fail "Unable to destroy tls directory" [[ "$3" == "force" ]] && DOKKU_APPS_FORCE_DELETE=1 APP="$2"; IMAGE_TAG=$(get_running_image_tag $APP) verify_app_name "$APP" if [[ -z "$DOKKU_APPS_FORCE_DELETE" ]]; then dokku_log_warn "WARNING: Potentially Destructive Action" dokku_log_warn "This command will destroy $APP (including all add-ons)." dokku_log_warn "To proceed, type \"$APP\"" echo "" read -p "> " app_name if [[ "$app_name" != "$APP" ]]; then dokku_log_fail "Confirmation did not match $APP. Aborted." fi fi echo "Destroying $APP (including all add-ons)" plugn trigger pre-delete $APP $IMAGE_TAG DOKKU_APP_CIDS=$(get_app_container_ids $APP) if [[ -n $DOKKU_APP_CIDS ]]; then for ID in $DOKKU_APP_CIDS; do docker stop $ID > /dev/null || true docker rm $ID > /dev/null || true done fi plugn trigger post-delete $APP $IMAGE_TAG ;; help | apps:help) cat<, Create a new app apps:destroy , Permanently destroy an app EOF ;; *) exit $DOKKU_NOT_IMPLEMENTED_EXIT ;; esac