diff --git a/docs/development/plugin-triggers.md b/docs/development/plugin-triggers.md index c655ca3c3..a14bea974 100644 --- a/docs/development/plugin-triggers.md +++ b/docs/development/plugin-triggers.md @@ -373,6 +373,21 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x # TODO ``` +### `network-clear-config` + +- Description: Clears network configuration +- Invoked by: `internally triggered by proxy-clear-config within proxy implementations` +- Arguments: `$APP` +- Example: + +```shell +#!/usr/bin/env bash + +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x + +# TODO +``` + ### `network-compute-ports` - Description: Computes the ports for a given app container @@ -1040,6 +1055,21 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x # TODO ``` +### `proxy-clear-config` + +- Description: Clears the proxy implementation configuration for a given app +- Invoked by: `internally triggered by apps:rename` +- Arguments: `$APP` +- Example: + +```shell +#!/usr/bin/env bash + +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x + +# TODO +``` + ### `proxy-enable` - Description: Enables the configured proxy implementation for an app diff --git a/plugins/20_events/network-clear-config b/plugins/20_events/network-clear-config new file mode 120000 index 000000000..5178a749f --- /dev/null +++ b/plugins/20_events/network-clear-config @@ -0,0 +1 @@ +hook \ No newline at end of file diff --git a/plugins/20_events/proxy-clear-config b/plugins/20_events/proxy-clear-config new file mode 120000 index 000000000..5178a749f --- /dev/null +++ b/plugins/20_events/proxy-clear-config @@ -0,0 +1 @@ +hook \ No newline at end of file diff --git a/plugins/apps/subcommands/rename b/plugins/apps/subcommands/rename index d18604445..2a95d1b26 100755 --- a/plugins/apps/subcommands/rename +++ b/plugins/apps/subcommands/rename @@ -14,12 +14,13 @@ apps_rename_cmd() { 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"; then + if [[ -d "$OLD_CACHE_DIR" ]] && ! rmdir "$OLD_CACHE_DIR" > /dev/null 2>&1; then docker run "$DOKKU_GLOBAL_RUN_ARGS" --rm -v "$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 proxy-clear-config "$NEW_APP" DOKKU_APPS_FORCE_DELETE=1 apps_destroy "$OLD_APP" [[ -f "$DOKKU_ROOT/$NEW_APP/URLS" ]] && sed -i -e "s/$OLD_APP/$NEW_APP/g" "$DOKKU_ROOT/$NEW_APP/URLS" [[ -f "$DOKKU_ROOT/$NEW_APP/VHOST" ]] && sed -i -e "s/$OLD_APP/$NEW_APP/g" "$DOKKU_ROOT/$NEW_APP/VHOST" diff --git a/plugins/nginx-vhosts/internal-functions b/plugins/nginx-vhosts/internal-functions index 93d929bb6..edf212502 100755 --- a/plugins/nginx-vhosts/internal-functions +++ b/plugins/nginx-vhosts/internal-functions @@ -26,3 +26,9 @@ nginx_vhosts_help_cmd() { help_desc fi } + +nginx_clear_config() { + declare desc="Remove the nginx conf file" + declare APP="$1"; + rm -f "$DOKKU_ROOT/$APP/nginx.conf" +} diff --git a/plugins/nginx-vhosts/proxy-clear-config b/plugins/nginx-vhosts/proxy-clear-config new file mode 100755 index 000000000..acd909db7 --- /dev/null +++ b/plugins/nginx-vhosts/proxy-clear-config @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" +source "$PLUGIN_AVAILABLE_PATH/nginx-vhosts/internal-functions" +source "$PLUGIN_AVAILABLE_PATH/proxy/functions" + +trigger-nginx-vhosts-clear-config() { + declare desc="clear nginx config for proxy app containers from command line" + declare trigger="trigger-nginx-vhosts-clear-config" + declare APP="$1" + [[ -z "$APP" ]] && dokku_log_fail "Please specify an app to run the command on" + + if [[ "$(get_app_proxy_type "$APP")" = "nginx" ]]; then + plugn trigger network-clear-config "$APP" + nginx_clear_config "$APP" + fi +} + +trigger-nginx-vhosts-clear-config "$@"