|
|
|
@ -1,6 +1,9 @@
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
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] If you\'re running this script over sudo or su into the other account this WILL FAIL, gpg will not tolerate it!'
|
|
|
|
|
echo '[NOTICE] While it is not recommended by this script, you can set up gpg in a non-standard directory.'
|
|
|
|
|
echo '[NOTICE] If you do so, this script will disable git modifications, regardless of your selection.'
|
|
|
|
|
echo '[NOTICE] Otherwise, this script will modify the global git configuation for the user it runs as, and use the default GPG home.'
|
|
|
|
|
read -p '"Real Name" for gpg and git [Testing]: ' rname
|
|
|
|
|
rname=${rname:-Testing}
|
|
|
|
|
read -p 'Email [test@test.test]: ' email
|
|
|
|
@ -13,7 +16,9 @@ temp=~/.gnupg
|
|
|
|
|
[[ $overgpg == n || $ovrgpg == N ]] && read -p "GPG home [$temp]: " gpghome
|
|
|
|
|
gpghome=${gpghome:-~/.gnupg}
|
|
|
|
|
echo "[INFO] Ensuring '$gpghome' exists with the correct permissions"
|
|
|
|
|
echo "$ mkdir -p $gpghome"
|
|
|
|
|
mkdir -p "$gpghome"
|
|
|
|
|
echo "$ chmod 700 $gpghome"
|
|
|
|
|
chmod 700 "$gpghome"
|
|
|
|
|
echo '[INFO] Now creating a gpg key using the real name and email provided'
|
|
|
|
|
echo "$ GPGHOME=$gpghome gpg --default-new-key-algo rsa4096 --quick-gen-key --batch --passphrase '' \"$rname <$email>\""
|
|
|
|
@ -24,6 +29,7 @@ GNUPGHOME="$gpghome" gpg --list-secret-keys --keyid-format=long
|
|
|
|
|
key_id=$(GNUPGHOME="$gpghome" gpg --list-secret-keys --keyid-format=long|grep sec|sed -E 's_.+ .+/([^ ]+) .+_\1_g')
|
|
|
|
|
echo "[INFO] Detected key: $key_id"
|
|
|
|
|
if [[ "${ovrgit}" == "y" || "${ovrgit}" == "Y" ]] ; then
|
|
|
|
|
echo '[NOTICE] Reconfiguring git!'
|
|
|
|
|
echo '[INFO] Having git recognize this as the default signing key for this user...'
|
|
|
|
|
echo "$ git config --global user.signingkey $key_id"
|
|
|
|
|
git config --global user.signingkey $key_id
|
|
|
|
@ -33,5 +39,15 @@ if [[ "${ovrgit}" == "y" || "${ovrgit}" == "Y" ]] ; then
|
|
|
|
|
echo "$ git config --global user.email \"$email\""
|
|
|
|
|
git config --global user.email "$email"
|
|
|
|
|
else
|
|
|
|
|
echo '[INFO] Not Reconfiguring git!'
|
|
|
|
|
echo '[NOTICE] Not Reconfiguring git!'
|
|
|
|
|
echo '[INFO] If you want forgejo to use the new gpg key, you\'ll need to set a few keys in `app.ini`.'
|
|
|
|
|
echo '[INFO] The keys you\'ll need to set are:'
|
|
|
|
|
echo '[repository.signing]'
|
|
|
|
|
echo "SIGNING_KEY = $key_id"
|
|
|
|
|
echo "SIGNING_NAME = $rname"
|
|
|
|
|
echo "SIGNING_EMAIL = $email"
|
|
|
|
|
echo '[INFO] This script does recommend that you use the default git setup with GPG keys, however.'
|
|
|
|
|
[[ $ovrgpg == n || $ovrgpg == N ]] && echo '[NOTICE] I notice you\'re trying to use a non-standard gpg directory'
|
|
|
|
|
[[ $ovrgpg == n || $ovrgpg == N ]] && echo '[NOTICE] I have no idea how to make forgejo read from a non-standard gpg dirctory'
|
|
|
|
|
[[ $ovrgpg == n || $ovrgpg == N ]] && echo '[NOTICE] So you\'re on your own from here. I hope you know what you\'re doing.'
|
|
|
|
|
fi
|