Implement domains:reset

This commit is contained in:
Álvaro Justen (@turicas)
2025-01-05 14:28:31 -03:00
committed by Jose Diaz-Gonzalez
parent b97086a8bd
commit 67311264d7
6 changed files with 32 additions and 3 deletions

View File

@@ -13,6 +13,7 @@ domains:enable <app> # Enable VHOST support
domains:remove <app> <domain> [<domain> ...] # Remove domains from app
domains:remove-global <domain> [<domain> ...] # Remove global domain names
domains:report [<app>|--global] [<flag>] # Displays a domains report for one or more apps
domains:reset <app> # Reset app domains to global-configured domains
domains:set <app> <domain> [<domain> ...] # Set domains for app
domains:set-global <domain> [<domain> ...] # Set global domain names
```
@@ -75,6 +76,9 @@ dokku domains:remove node-js-app dokku.me
# set all custom domains for app
dokku domains:set node-js-app dokku.me dokku.org
# delete all app domains and configure available global domains on it
dokku domains:reset node-js-app
```
## Displaying domains reports for an app

View File

@@ -1699,7 +1699,7 @@ curl "http://httpstat.us/200"
### `post-domains-update`
- Description: Allows you to run commands once the domain for an app has been updated. It also sends in the command that has been used. This can be "add", "clear" or "remove". The third argument will be the optional list of domains
- Invoked by: `dokku domains:add`, `dokku domains:clear`, `dokku domains:remove`, `dokku domains:set`
- Invoked by: `dokku domains:add`, `dokku domains:clear`, `dokku domains:remove`, `dokku domains:reset`, `dokku domains:set`
- Arguments: `$APP` `action name` `domains`
- Example:

View File

@@ -158,6 +158,8 @@ At this time, the following dokku commands are used to interact with a complete
- triggers: `pre-enable-vhost`
- `domains:remove`: Removes a domain from an app.
- triggers: `post-domains-update`
- `domains:reset`: Reset app domains to global-configured domains.
- triggers: `post-domains-update`
- `domains:set`: Sets all domains for a given app.
- triggers: `post-domains-update`
- `proxy:build-config`: Builds - or rebuilds - external proxy configuration.

View File

@@ -36,6 +36,7 @@ fn-help-content() {
domains:remove <app> <domain> [<domain> ...], Remove domains from app
domains:remove-global <domain> [<domain> ...], Remove global domain names
domains:report [<app>|--global] [<flag>], Displays a domains report for one or more apps
domains:reset <app>, Reset app domains to global-configured domains
domains:set <app> <domain> [<domain> ...], Set domains for app
domains:set-global <domain> [<domain> ...], Set global domain names
help_content

View File

@@ -0,0 +1,22 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
source "$PLUGIN_AVAILABLE_PATH/domains/functions"
cmd-domains-reset() {
declare desc="reset app domains to global-configured domains"
declare cmd="domains:reset"
[[ "$1" == "$cmd" ]] && shift 1
declare APP="$1"
verify_app_name "$APP"
local APP_VHOST_PATH="$DOKKU_ROOT/$APP/VHOST"
rm -f "$APP_VHOST_PATH"
domains_setup "$APP"
plugn trigger post-domains-update "$APP" "reset"
dokku_log_info1 "Reset domains for $APP"
}
cmd-domains-reset "$@"

View File

@@ -188,7 +188,7 @@ teardown() {
assert_output_contains a--domain.with--hyphens
}
@test "(domains) domains:clear" {
@test "(domains) domains:reset" {
run /bin/bash -c "dokku domains:add $TEST_APP test.app.${DOKKU_DOMAIN}"
echo "output: $output"
echo "status: $status"
@@ -199,7 +199,7 @@ teardown() {
echo "status: $status"
assert_success
run /bin/bash -c "dokku domains:clear $TEST_APP"
run /bin/bash -c "dokku domains:reset $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success