#!/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