Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
# Creates an active application administrator and prints a generated password
|
||||
# exactly once. Installed during deployment as gardomatic-create-admin.
|
||||
if [[ $(id -u) -ne 0 ]]; then
|
||||
exec sudo -n "$0" "$@"
|
||||
fi
|
||||
|
||||
ENV_FILE=/etc/gardomatic/gardomatic.env
|
||||
CLI=/usr/local/bin/gardomatic-cli
|
||||
|
||||
[[ -f "$ENV_FILE" ]] || {
|
||||
printf 'Missing runtime configuration: %s\n' "$ENV_FILE" >&2
|
||||
exit 1
|
||||
}
|
||||
[[ -x "$CLI" ]] || {
|
||||
printf 'Missing Gardomatic CLI: %s\n' "$CLI" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
read -r -p 'Administrator name: ' admin_name
|
||||
read -r -p 'Administrator email: ' admin_email
|
||||
[[ -n "$admin_name" && -n "$admin_email" ]] || {
|
||||
printf 'Name and email must not be empty.\n' >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
source "$ENV_FILE"
|
||||
set +a
|
||||
|
||||
"$CLI" --yes users create \
|
||||
--name "$admin_name" \
|
||||
--email "$admin_email" \
|
||||
--role application:admin \
|
||||
--active \
|
||||
--generate-password
|
||||
Reference in New Issue
Block a user