Compare commits

...

2 commits

View file

@ -1,22 +1,36 @@
echo '[NOTICE] Make sure to run this script as the user that forejo runs as, via ssh or with manual ownership grants to your current tty!' echo '[NOTICE] Make sure to run this script as the user that forejo runs as, via ssh or with manual ownership grants to your current tty!'
echo '[NOTICE] This script modifes your default git config! If forejo runs as your user, then this will mess up your default git config!' #echo '[NOTICE] This script modifes your default git config! If forejo runs as your user, then this will mess up your default git config!'
rname="NUL" read -p '"Real Name" for gpg and git [Testing]: ' rname
read -p '"Real Name" for gpg and git: ' rname rname=${rname:-Testing}
email="NUL" read -p 'Email [test@test.test]: ' email
read -p 'Email: ' email email=${email:-test@test.test}
read -p 'Override default git config. Unless forgejo runs as you, this should be left alone! (Y|N) [Y]: ' ovrgit
ovrgit=${ovrgit:-Y}
read -p "Use default gpg directory. Unless you know exactly what you're doing, you should leave this alone! (Y|N) [Y]: " ovrgpg
ovrgpg=${ovrgpg:-Y}
temp=~/.gnupg
[[ $overgpg == n || $ovrgpg == N ]] && read -p "GPG home [$temp]: " gpghome
gpghome=${gpghome:-~/.gnupg}
echo "[INFO] Ensuring '$gpghome' exists with the correct permissions"
mkdir -p "$gpghome"
chmod 700 "$gpghome"
echo '[INFO] Now creating a gpg key using the real name and email provided' echo '[INFO] Now creating a gpg key using the real name and email provided'
echo "$ gpg --default-new-key-algo rsa4096 --quick-gen-key --batch --passphrase '' \"$rname <$email>\"" echo "$ GPGHOME=$gpghome gpg --default-new-key-algo rsa4096 --quick-gen-key --batch --passphrase '' \"$rname <$email>\""
gpg --default-new-key-algo rsa4096 --quick-gen-key --batch --passphrase '' "$rname <$email>" GNUPGHOME="$gpghome" gpg --default-new-key-algo rsa4096 --quick-gen-key --batch --passphrase '' "$rname <$email>"
echo '[INFO] Listing keys' echo '[INFO] Listing keys'
echo '$ gpg --list-secret-keys --keyid-format=long' echo "$ GNUPGHOME=$gpghome gpg --list-secret-keys --keyid-format=long"
gpg --list-secret-keys --keyid-format=long GNUPGHOME="$gpghome" gpg --list-secret-keys --keyid-format=long
key_id=$(gpg --list-secret-keys --keyid-format=long|grep sec|sed -E 's_.+ .+/([^ ]+) .+_\1_g') key_id=$(GNUPGHOME="$gpghome" gpg --list-secret-keys --keyid-format=long|grep sec|sed -E 's_.+ .+/([^ ]+) .+_\1_g')
echo "[INFO] Detected key: $key_id" echo "[INFO] Detected key: $key_id"
echo '[INFO] Having git recognize this as the default signing key for this user...' if [[ "${ovrgit}" == "y" || "${ovrgit}" == "Y" ]] ; then
echo "$ git config --global user.signingkey $key_id" echo '[INFO] Having git recognize this as the default signing key for this user...'
git config --global user.signingkey $key_id echo "$ git config --global user.signingkey $key_id"
echo "[INFO] Having git use \"$rname\" as name and \"$email\" as email..." git config --global user.signingkey $key_id
echo "$ git config --global user.name \"$rname\"" echo "[INFO] Having git use \"$rname\" as name and \"$email\" as email..."
git config --global user.name "$rname" echo "$ git config --global user.name \"$rname\""
echo "$ git config --global user.email \"$email\"" git config --global user.name "$rname"
git config --global user.email "$email" echo "$ git config --global user.email \"$email\""
git config --global user.email "$email"
else
echo '[INFO] Not Reconfiguring git!'
fi