gum log --structured \
--time timeonly \
--level debug \
'Handling forgejo users'
fjuser list | awk '{print $2}' | tail -n +2 | while read username; do
if printf '%s\0' "${declared_users[@]}" | grep -Fxqz -- "$username"; then
--level info \
'Declared user already exists, ignoring' \
username "$username"
else
if [[ "$(fjuser list | tail -n +2 | awk '{print $2 " " $5}' | grep "$username" | awk '{print $2}')" == "true" ]]; then
--level warn \
'Undeclared user is an ADMIN, ignoring' \
elif [[ "$handle_undeclared_users" == "true" ]]; then
'DELETING undeclared user' \
fjuser delete -u "$username"
'UNDECLARED user, please declare it to have a reproducible build' \
fi
done
# this is used in the string inside ./default.nix
function set-user() {
local username=$1
local email=$2
local password=$3
local admin=$4
'Setting user' \
username "$username" \
email "$email"
if [[ "$(fjuser list | grep "$username" | awk '{print $2}')" ]]; then
--level error \
'User with username already exists' \
elif [[ "$(fjuser list | grep "$email" | awk '{print $3}')" ]]; then
if [[ "$admin" == "true" ]]; then
'Creating ADMIN user' \
fjuser create --username "$username" \
--email "$email" \
--password "$password" \
--admin
'Creating user' \
--password "$password"
}