git-sig/test/test_helper.bash

42 lines
1.2 KiB
Bash

#!/bin/bash
setup(){
test -f /usr/bin/git || sudo apt install --reinstall -y git
test -f /usr/bin/getopt || sudo apt install --reinstall -y util-linux
test -f /usr/bin/gpg || sudo apt install --reinstall -y gpg
test -f /usr/bin/openssl || sudo apt install --reinstall -y openssl
bin_dir=/tmp/bin
temp_dir=$(mktemp -d -t test-XXXXXXXXXX)
mkdir -p /tmp/bin
ln -sfn /home/test/sig/sig /tmp/bin/sig
export PATH=${bin_dir}:${PATH}
cd "$temp_dir" || return 1
rm -rf ~/.gnupg
rm -rf ~/.gitconfig
killall gpg-agent >/dev/null 2>&1 || :
}
teardown(){
rm -rf "$temp_dir"
}
set_identity(){
local -r name="${1?}"
killall gpg-agent || :
rm -rf ~/.gnupg || :
rm -rf ~/.gitconfig || :
gpg --import ${HOME}/sig/test/keys/*.pub.asc
gpg --import ${HOME}/sig/test/keys/${name}.sec.asc
local -r fingerprint=$( \
gpg --list-keys --with-colons "${name}" 2>&1 \
| awk -F: '$1 == "fpr" {print $10}' \
| head -n1 \
)
git config --global user.email "${name}@example.com"
git config --global user.name "${name}"
git config --global user.signingKey "${fingerprint}"
git config --global commit.gpgSign "true"
git config --global merge.gpgSign "true"
echo "default-key ${fingerprint}" > ~/.gnupg/gpg.conf
}