41 lines
1.2 KiB
Bash
Executable File
41 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
source "$(dirname "$(dirname "${BASH_SOURCE[0]}")")/functions"
|
|
|
|
cmd-google-auth-exclude() {
|
|
declare desc="exempt paths from Google sign-in (prefix: /path, regex: re:^/pattern)"
|
|
local cmd="google-auth:exclude"
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
declare APP="$1"
|
|
shift 1 || true
|
|
|
|
[[ -n "$APP" ]] || dokku_log_fail "usage: dokku google-auth:exclude <app> <pattern...>"
|
|
verify_app_name "$APP"
|
|
|
|
if [[ $# -eq 0 ]]; then
|
|
dokku_log_info2 "excluded paths for $APP"
|
|
local pattern
|
|
while IFS= read -r pattern; do
|
|
[[ -n "$pattern" ]] && dokku_log_verbose "$pattern"
|
|
done < <(fn-ga-excludes "$APP")
|
|
return 0
|
|
fi
|
|
|
|
local pattern
|
|
for pattern in "$@"; do
|
|
fn-ga-validate-pattern "$pattern" ||
|
|
dokku_log_fail "invalid pattern '$pattern' — use a path prefix like /api/webhooks or a regex like re:^/v[0-9]+/public/ (no spaces, quotes, or ;{})"
|
|
fn-ga-exclude-add "$APP" "$pattern"
|
|
dokku_log_info1 "excluded: $pattern"
|
|
done
|
|
|
|
if fn-google-auth-app-enabled "$APP"; then
|
|
fn-ga-apply "$APP"
|
|
else
|
|
dokku_log_verbose "patterns saved; they take effect when google-auth is enabled for $APP"
|
|
fi
|
|
}
|
|
|
|
cmd-google-auth-exclude "$@"
|