init
This commit is contained in:
commit
27c4191be8
17 changed files with 730 additions and 0 deletions
44
bin/initialize-forgejo.sh
Executable file
44
bin/initialize-forgejo.sh
Executable file
|
|
@ -0,0 +1,44 @@
|
|||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
: "${FORGEJO_ADMIN_USERNAME:?FORGEJO_ADMIN_USERNAME must be set}"
|
||||
: "${FORGEJO_ADMIN_EMAIL:?FORGEJO_ADMIN_EMAIL must be set}"
|
||||
: "${FORGEJO_ADMIN_PASSWORD:?FORGEJO_ADMIN_PASSWORD must be set}"
|
||||
|
||||
shell_quote() {
|
||||
printf "'%s'" "$(printf '%s' "$1" | sed "s/'/'\\\\''/g")"
|
||||
}
|
||||
|
||||
run_forgejo() {
|
||||
command="exec /usr/local/bin/forgejo"
|
||||
for argument in "$@"; do
|
||||
command="$command $(shell_quote "$argument")"
|
||||
done
|
||||
su forgejo -s /bin/sh -c "$command"
|
||||
}
|
||||
|
||||
if ! run_forgejo -c "$GITEA_APP_INI" migrate >/tmp/forgejo-migrate.log 2>&1; then
|
||||
cat /tmp/forgejo-migrate.log >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if run_forgejo -c "$GITEA_APP_INI" admin user create \
|
||||
--username "$FORGEJO_ADMIN_USERNAME" \
|
||||
--password "$FORGEJO_ADMIN_PASSWORD" \
|
||||
--email "$FORGEJO_ADMIN_EMAIL" \
|
||||
--admin \
|
||||
--must-change-password=false >/tmp/forgejo-admin-create.log 2>&1; then
|
||||
printf 'Created Forgejo admin user %s.\n' "$FORGEJO_ADMIN_USERNAME"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
run_forgejo -c "$GITEA_APP_INI" admin user list >/tmp/forgejo-admin-list.log 2>/dev/null || true
|
||||
while read -r _id username _rest; do
|
||||
if [ "$username" = "$FORGEJO_ADMIN_USERNAME" ]; then
|
||||
printf 'Forgejo admin user %s already exists; leaving it unchanged.\n' "$FORGEJO_ADMIN_USERNAME"
|
||||
exit 0
|
||||
fi
|
||||
done < /tmp/forgejo-admin-list.log
|
||||
|
||||
cat /tmp/forgejo-admin-create.log >&2
|
||||
exit 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue