2014-11-16 02:30:39 -05:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
2015-02-05 11:32:46 -08:00
|
|
|
source "$(dirname $0)/../common/functions"
|
2014-11-16 02:30:39 -05:00
|
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
|
apps)
|
2015-02-06 08:28:14 -08:00
|
|
|
dokku_log_info2_quiet "My Apps"
|
2014-11-25 11:56:05 -06:00
|
|
|
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
|
2014-11-16 02:30:39 -05:00
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
apps:create)
|
2014-11-23 23:31:33 -05:00
|
|
|
[[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1
|
2015-02-06 08:28:14 -08:00
|
|
|
[[ -d "$DOKKU_ROOT/$2" ]] && dokku_log_warn "Name is already taken" && exit 1
|
2014-11-16 02:30:39 -05:00
|
|
|
APP="$2"
|
|
|
|
|
|
|
|
|
|
mkdir -p "$DOKKU_ROOT/$APP"
|
|
|
|
|
echo "Creating $APP... done"
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
apps:destroy)
|
2014-11-23 23:31:33 -05:00
|
|
|
[[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1
|
2015-02-05 11:32:46 -08:00
|
|
|
verify_app_name "$2"
|
2014-11-23 23:31:33 -05:00
|
|
|
[[ "$2" == "tls" ]] && echo "Unable to destroy tls directory" && exit 1
|
2015-02-05 11:32:46 -08:00
|
|
|
APP="$2"; IMAGE="dokku/$APP"
|
2014-11-16 13:00:07 -05:00
|
|
|
|
2015-02-05 11:32:46 -08:00
|
|
|
[[ "$3" == "force" ]] && DOKKU_APPS_FORCE_DELETE=1
|
|
|
|
|
if [[ -z "$DOKKU_APPS_FORCE_DELETE" ]]; then
|
2015-02-06 08:28:14 -08:00
|
|
|
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\""
|
2015-01-16 14:57:49 -08:00
|
|
|
echo ""
|
2014-11-16 02:30:39 -05:00
|
|
|
|
2015-01-16 14:57:49 -08:00
|
|
|
read -p "> " app_name
|
|
|
|
|
if [[ "$app_name" != "$APP" ]]; then
|
2015-02-06 08:28:14 -08:00
|
|
|
dokku_log_warn "Confirmation did not match $APP. Aborted."
|
2015-01-16 14:57:49 -08:00
|
|
|
exit 1
|
|
|
|
|
fi
|
2014-11-16 02:30:39 -05:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "Destroying $APP (including all add-ons)"
|
|
|
|
|
|
|
|
|
|
pluginhook pre-delete $APP
|
2015-04-17 18:57:37 -07:00
|
|
|
DOKKU_APP_CIDS=$(get_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
|
2014-11-16 02:30:39 -05:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
docker images | grep $IMAGE | awk '{print $3}' | xargs docker rmi &> /dev/null &
|
|
|
|
|
|
|
|
|
|
pluginhook post-delete $APP
|
|
|
|
|
;;
|
|
|
|
|
|
2014-11-22 17:52:46 -05:00
|
|
|
help | apps:help)
|
2014-11-16 02:30:39 -05:00
|
|
|
cat && cat<<EOF
|
|
|
|
|
apps List your apps
|
|
|
|
|
apps:create <app> Create a new app
|
|
|
|
|
apps:destroy <app> Permanently destroy an app
|
|
|
|
|
EOF
|
|
|
|
|
;;
|
|
|
|
|
|
2014-11-23 18:09:11 -05:00
|
|
|
*)
|
|
|
|
|
exit $DOKKU_NOT_IMPLEMENTED_EXIT
|
|
|
|
|
;;
|
|
|
|
|
|
2014-11-16 02:30:39 -05:00
|
|
|
esac
|