diff --git a/plugins/apps/subcommands/clone b/plugins/apps/subcommands/clone index e4fde7cc7..7d0b8257f 100755 --- a/plugins/apps/subcommands/clone +++ b/plugins/apps/subcommands/clone @@ -21,8 +21,6 @@ cmd-apps-clone() { OLD_APP="$1" NEW_APP="$2" [[ -z "$OLD_APP" ]] && dokku_log_fail "Please specify an app to run the command on" - local DOCKER_RUN_LABEL_ARGS="--label=com.dokku.app-name=$NEW_APP" - is_valid_app_name "$OLD_APP" is_valid_app_name "$NEW_APP" apps_exists "$OLD_APP" >/dev/null 2>&1 || dokku_log_fail "App does not exist" @@ -35,22 +33,9 @@ cmd-apps-clone() { dokku_log_fail "Name is already taken" fi - local NEW_CACHE_DIR="$DOKKU_ROOT/$NEW_APP/cache" - local NEW_CACHE_HOST_DIR="$DOKKU_HOST_ROOT/$NEW_APP/cache" - apps_create "$NEW_APP" - pushd "$DOKKU_ROOT/$OLD_APP/." >/dev/null - find ./* \( -name ".cache" -o -name "cache" \) -prune -o -print | cpio -pdmu --quiet "$DOKKU_ROOT/$NEW_APP" - popd >/dev/null 2>&1 || pushd "/tmp" >/dev/null plugn trigger post-app-clone-setup "$OLD_APP" "$NEW_APP" - - if [[ -d "$NEW_CACHE_DIR" ]] && ! rmdir "$NEW_CACHE_DIR"; then - "$DOCKER_BIN" container run "${DOCKER_RUN_LABEL_ARGS[@]}" $DOKKU_GLOBAL_RUN_ARGS --rm --volume "$NEW_CACHE_HOST_DIR:/cache" "dokku/$OLD_APP" chmod 777 -R /cache - fi - rm -rf "$NEW_CACHE_DIR" - - [[ "$SKIP_REBUILD" == "true" ]] || ps_rebuild "$NEW_APP" - plugn trigger post-app-clone "$OLD_APP" "$NEW_APP" + SKIP_REBUILD=$SKIP_REBUILD plugn trigger post-app-clone "$OLD_APP" "$NEW_APP" dokku_log_info1_quiet "Cloning $OLD_APP to $NEW_APP... done" } diff --git a/plugins/apps/subcommands/rename b/plugins/apps/subcommands/rename index 9fa77ac03..ba4032da8 100755 --- a/plugins/apps/subcommands/rename +++ b/plugins/apps/subcommands/rename @@ -13,17 +13,8 @@ cmd-apps-rename() { [[ -z "$OLD_APP" ]] && dokku_log_fail "Please specify an app to run the command on" [[ -d "$DOKKU_ROOT/$NEW_APP" ]] && dokku_log_fail "Name is already taken" - local OLD_CACHE_DIR="$DOKKU_ROOT/$OLD_APP/cache" - local OLD_CACHE_HOST_DIR="$DOKKU_HOST_ROOT/$OLD_APP/cache" - local DOCKER_RUN_LABEL_ARGS="--label=com.dokku.app-name=$OLD_APP" - - if [[ -d "$OLD_CACHE_DIR" ]] && ! rmdir "$OLD_CACHE_DIR" >/dev/null 2>&1; then - "$DOCKER_BIN" container run "${DOCKER_RUN_LABEL_ARGS[@]}" $DOKKU_GLOBAL_RUN_ARGS --rm --volume "$OLD_CACHE_HOST_DIR:/cache" "dokku/$OLD_APP" chmod 777 -R /cache - fi - rm -rf "$OLD_CACHE_DIR" apps_create "$NEW_APP" - cp -a "$DOKKU_ROOT/$OLD_APP/." "$DOKKU_ROOT/$NEW_APP" plugn trigger post-app-rename-setup "$OLD_APP" "$NEW_APP" DOKKU_APPS_FORCE_DELETE=1 apps_destroy "$OLD_APP" plugn trigger post-app-rename "$OLD_APP" "$NEW_APP" diff --git a/plugins/builder-herokuish/post-app-clone-setup b/plugins/builder-herokuish/post-app-clone-setup new file mode 100755 index 000000000..5d79dda88 --- /dev/null +++ b/plugins/builder-herokuish/post-app-clone-setup @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -eo pipefail +[[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" +source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions" + +trigger-builder-herokuish-post-app-clone-setup() { + declare desc="builder-herokuish post-app-clone-setup plugin trigger" + declare trigger="post-app-clone-setup" + declare OLD_APP="$1" NEW_APP="$2" + + local NEW_CACHE_DIR="$DOKKU_ROOT/$NEW_APP/cache" + local NEW_CACHE_HOST_DIR="$DOKKU_HOST_ROOT/$NEW_APP/cache" + + pushd "$DOKKU_ROOT/$OLD_APP/." >/dev/null + find ./* \( -name ".cache" -o -name "cache" \) -prune -o -print | cpio -pdmu --quiet "$DOKKU_ROOT/$NEW_APP" + popd >/dev/null 2>&1 || pushd "/tmp" >/dev/null + + if [[ -d "$NEW_CACHE_DIR" ]] && ! rmdir "$NEW_CACHE_DIR"; then + local DOCKER_RUN_LABEL_ARGS="--label=com.dokku.app-name=$NEW_APP" + "$DOCKER_BIN" container run "${DOCKER_RUN_LABEL_ARGS[@]}" $DOKKU_GLOBAL_RUN_ARGS --rm --volume "$NEW_CACHE_HOST_DIR:/cache" "dokku/$OLD_APP" chmod 777 -R /cache + fi + rm -rf "$NEW_CACHE_DIR" +} + +trigger-builder-herokuish-post-app-clone-setup "$@" diff --git a/plugins/builder-herokuish/post-app-rename-setup b/plugins/builder-herokuish/post-app-rename-setup new file mode 100755 index 000000000..8c8d8ddfe --- /dev/null +++ b/plugins/builder-herokuish/post-app-rename-setup @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -eo pipefail +[[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" +source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions" + +trigger-builder-herokuish-post-app-clone-setup() { + declare desc="builder-herokuish post-app-clone-setup plugin trigger" + declare trigger="post-app-clone-setup" + declare OLD_APP="$1" NEW_APP="$2" + + local OLD_CACHE_DIR="$DOKKU_ROOT/$OLD_APP/cache" + local OLD_CACHE_HOST_DIR="$DOKKU_HOST_ROOT/$OLD_APP/cache" + + if [[ -d "$OLD_CACHE_DIR" ]] && ! rmdir "$OLD_CACHE_DIR" >/dev/null 2>&1; then + local DOCKER_RUN_LABEL_ARGS="--label=com.dokku.app-name=$NEW_APP" + "$DOCKER_BIN" container run "${DOCKER_RUN_LABEL_ARGS[@]}" $DOKKU_GLOBAL_RUN_ARGS --rm --volume "$OLD_CACHE_HOST_DIR:/cache" "dokku/$OLD_APP" chmod 777 -R /cache + fi + rm -rf "$OLD_CACHE_DIR" + + pushd "$DOKKU_ROOT/$OLD_APP/." >/dev/null + find ./* \( -name ".cache" -o -name "cache" \) -prune -o -print | cpio -pdmu --quiet "$DOKKU_ROOT/$NEW_APP" + popd >/dev/null 2>&1 || pushd "/tmp" >/dev/null +} + +trigger-builder-herokuish-post-app-clone-setup "$@" diff --git a/plugins/ps/post-app-clone b/plugins/ps/post-app-clone new file mode 100755 index 000000000..92fdefd7b --- /dev/null +++ b/plugins/ps/post-app-clone @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +set -eo pipefail +[[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" +source "$PLUGIN_AVAILABLE_PATH/config/functions" +source "$PLUGIN_AVAILABLE_PATH/ps/functions" + +trigger-ps-post-app-clone() { + declare desc="ps post-app-clone plugin trigger" + declare trigger="post-app-clone" + declare OLD_APP="$1" NEW_APP="$2" + + if [[ "$SKIP_REBUILD" != "true" ]]; then + ps_rebuild "$NEW_APP" + fi +} + +trigger-ps-post-app-clone "$@"