#!/usr/bin/env bash set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$(dirname $0)/../common/functions" source "$(dirname $0)/functions" case "$1" in tag:add) [[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1 APP="$2"; TAG="$3" verify_app_name "$APP" verify_image "$IMAGE" || dokku_log_fail "App image ($IMAGE) not found" tag_image "$IMAGE:latest" "$IMAGE:$TAG" dokku_log_info2_quiet "Added $TAG tag to $IMAGE" pluginhook tag-add $APP $TAG ;; tag:deploy) [[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1 APP="$2"; TAG="$3" verify_app_name "$APP" verify_image "$IMAGE:$TAG" || dokku_log_fail "App image ($IMAGE:$TAG) not found" release_and_deploy $APP $TAG ;; tag:list) [[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1 APP="$2"; verify_app_name "$APP" dokku_log_info2_quiet "Image tags for $IMAGE" docker images "$IMAGE" ;; tag:rm) [[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1 APP="$2"; TAG="$3" verify_app_name "$2" case "$TAG" in latest) dokku_log_fail "You can't remove internal dokku tag ($TAG) for $IMAGE" ;; *) docker rmi "$IMAGE:$TAG" ;; esac pluginhook tag-remove $APP $TAG ;; help | tag:help) cat && cat< Add tag to latest running app image tag:deploy Deploy tagged app image tag:list List all app image tags tag:rm Remove app image tag EOF ;; *) exit $DOKKU_NOT_IMPLEMENTED_EXIT ;; esac