2024-06-15 19:11:16 -03:00
|
|
|
|
|
|
|
|
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
|
|
|
|
|
gum log --structured \
|
|
|
|
|
--time timeonly \
|
|
|
|
|
--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
|
|
|
|
|
gum log --structured \
|
|
|
|
|
--time timeonly \
|
|
|
|
|
--level warn \
|
|
|
|
|
'Undeclared user is an ADMIN, ignoring' \
|
|
|
|
|
username "$username"
|
|
|
|
|
elif [[ "$handle_undeclared_users" == "true" ]]; then
|
|
|
|
|
gum log --structured \
|
|
|
|
|
--time timeonly \
|
|
|
|
|
--level info \
|
|
|
|
|
'DELETING undeclared user' \
|
|
|
|
|
username "$username"
|
|
|
|
|
fjuser delete -u "$username"
|
|
|
|
|
else
|
|
|
|
|
gum log --structured \
|
|
|
|
|
--time timeonly \
|
|
|
|
|
--level warn \
|
|
|
|
|
'UNDECLARED user, please declare it to have a reproducible build' \
|
|
|
|
|
username "$username"
|
|
|
|
|
fi
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
gum log --structured \
|
|
|
|
|
--time timeonly \
|
|
|
|
|
--level debug \
|
|
|
|
|
'Setting user' \
|
|
|
|
|
username "$username" \
|
|
|
|
|
email "$email"
|
|
|
|
|
|
|
|
|
|
if [[ "$(fjuser list | grep "$username" | awk '{print $2}')" ]]; then
|
|
|
|
|
gum log --structured \
|
|
|
|
|
--time timeonly \
|
|
|
|
|
--level error \
|
|
|
|
|
'User with username already exists' \
|
|
|
|
|
username "$username"
|
|
|
|
|
elif [[ "$(fjuser list | grep "$email" | awk '{print $3}')" ]]; then
|
|
|
|
|
gum log --structured \
|
|
|
|
|
--time timeonly \
|
|
|
|
|
--level error \
|
|
|
|
|
'User with username already exists' \
|
|
|
|
|
email "$email"
|
|
|
|
|
else
|
|
|
|
|
if [[ "$admin" == "true" ]]; then
|
|
|
|
|
gum log --structured \
|
|
|
|
|
--time timeonly \
|
|
|
|
|
--level debug \
|
|
|
|
|
'Creating ADMIN user' \
|
|
|
|
|
username "$username" \
|
|
|
|
|
email "$email"
|
|
|
|
|
|
|
|
|
|
fjuser create --username "$username" \
|
|
|
|
|
--email "$email" \
|
|
|
|
|
--password "$password" \
|
|
|
|
|
--admin
|
|
|
|
|
else
|
|
|
|
|
gum log --structured \
|
|
|
|
|
--time timeonly \
|
|
|
|
|
--level debug \
|
|
|
|
|
'Creating user' \
|
|
|
|
|
username "$username" \
|
|
|
|
|
email "$email"
|
|
|
|
|
|
|
|
|
|
fjuser create --username "$username" \
|
|
|
|
|
--email "$email" \
|
|
|
|
|
--password "$password"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
}
|