scripts: forge-create-user.sh wrapper
one-liner-as-a-script: `forge-create-user.sh mara --admin`. wraps the nixos-container run + runuser + --work-path dance + sensible defaults (random password, no force-change, email = <user>@hive.local) so copy-paste line-continuations don't bite.
This commit is contained in:
parent
2b076f8ce4
commit
d8b05a9eb9
1 changed files with 35 additions and 0 deletions
35
scripts/forge-create-user.sh
Executable file
35
scripts/forge-create-user.sh
Executable file
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Create a Forgejo user in the hive-forge container.
|
||||||
|
#
|
||||||
|
# Usage: forge-create-user.sh <username> [--admin] [--email <addr>] [--password <pw>]
|
||||||
|
#
|
||||||
|
# Defaults: --random-password, --must-change-password=false, email = <user>@hive.local.
|
||||||
|
# Requires: sudo, the hive-forge nixos-container running.
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if [ $# -lt 1 ]; then
|
||||||
|
echo "usage: $0 <username> [--admin] [--email <addr>] [--password <pw>]" >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
username="$1"; shift
|
||||||
|
email="${username}@hive.local"
|
||||||
|
admin=()
|
||||||
|
password_args=(--random-password)
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
--admin) admin=(--admin); shift ;;
|
||||||
|
--email) email="$2"; shift 2 ;;
|
||||||
|
--password) password_args=(--password "$2"); shift 2 ;;
|
||||||
|
*) echo "unknown arg: $1" >&2; exit 2 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
sudo nixos-container run hive-forge -- runuser -u forgejo -- \
|
||||||
|
forgejo --work-path /var/lib/forgejo admin user create \
|
||||||
|
--username "$username" \
|
||||||
|
--email "$email" \
|
||||||
|
--must-change-password=false \
|
||||||
|
"${password_args[@]}" \
|
||||||
|
"${admin[@]}"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue