#!/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