35 lines
1.2 KiB
Bash
35 lines
1.2 KiB
Bash
|
#!/bin/sh
|
||
|
declare -A variables
|
||
|
read -p 'Git username: ' variables[gituser]
|
||
|
read -p 'Git email: ' variables[gitmail]
|
||
|
|
||
|
echo "The computers git username ${variables[gituser]}"
|
||
|
|
||
|
PS3='Which Git signing format? '
|
||
|
options=("openpgp" "ssh" )
|
||
|
select opt in "${options[@]}"
|
||
|
do
|
||
|
case $opt in
|
||
|
"openpgp")
|
||
|
variables[signformat]=$opt
|
||
|
echo Emails of currently installed secret keys:
|
||
|
gpg --list-secret-keys | grep uid
|
||
|
read -p 'Type email of secret key: ' email
|
||
|
variables[signingkey]=$(gpg --list-secret-keys --keyid-format=long $email | grep sec | tr " " "\n" | head -4 | tail -1 | tr "/" "\n" | head -2 | tail -1 | tr -d "\n")
|
||
|
break
|
||
|
;;
|
||
|
"ssh")
|
||
|
variables[signformat]=$opt
|
||
|
read -ep 'Path to public key: ' variables[signingkey]
|
||
|
break
|
||
|
;;
|
||
|
*) echo "invalid option $REPLY";;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
git config --global user.name ${variables[gituser]}
|
||
|
git config --global user.email ${variables[gitmail]}
|
||
|
git config --global user.signingkey ${variables[sigingkey]}
|
||
|
git config --global gpg.format ${variables[signformat]}
|
||
|
git config --global commit.gpgsign true
|