feat(configure_user.sh): 添加 GPG 配置和 Git GPG 签名功能

This commit is contained in:
Konano 2024-11-08 17:55:30 +08:00
parent b798232bfc
commit 8c82238365
Signed by: Nano
GPG Key ID: 93686B78EE43A65A
2 changed files with 38 additions and 11 deletions

View File

@ -37,6 +37,41 @@ configure_git() {
fi fi
} }
configure_gpg() {
[ -d ~/.gnupg ] && [ -f ~/.gnupg/gpg.conf ] && return
if confirm_action "要配置 gpg 吗?" "Y"; then
mkdir -p ~/.gnupg
chmod 700 ~/.gnupg
cp $scriptdir/files/gpg.conf ~/.gnupg/gpg.conf
fi
}
configure_git_gpg() {
[ ! -f ~/.gitconfig ] && return
! command_exists git && return
[ -n "$(git config --global user.signingkey)" ] && return
if confirm_action "要配置 git 使用 gpg 签名吗?" "N"; then
if ! command_exists 7za; then
echo "7zip 未安装,请运行 sudo apt install p7zip-full 安装"
return
fi
read_password
cp $scriptdir/files/git.key.zip $tempdir/git.key.zip
7za x -p$password $tempdir/git.key.zip -o$tempdir > /dev/null 2>&1
rm $tempdir/git.key.zip
if [ ! -s $tempdir/git.key ]; then
echo "Wrong password!"
return
fi
gpg --import $tempdir/git.key
rm $tempdir/git.key
git config --global user.signingkey 4ACB54FB3EFF978038BFB374A523E440E24B89CF
git config --global commit.gpgSign true
fi
}
configure_miniconda() { configure_miniconda() {
[ -d ~/.miniconda3 ] && return [ -d ~/.miniconda3 ] && return
[ $offline -eq 1 ] && return [ $offline -eq 1 ] && return
@ -85,16 +120,6 @@ configure_nvm() {
fi fi
} }
configure_gpg() {
[ -d ~/.gnupg ] && [ -f ~/.gnupg/gpg.conf ] && return
if confirm_action "要配置 gpg 吗?" "Y"; then
mkdir -p ~/.gnupg
chmod 700 ~/.gnupg
cp $scriptdir/files/gpg.conf ~/.gnupg/gpg.conf
fi
}
# ============================================================ # ============================================================
if [ $# -ne 0 ]; then if [ $# -ne 0 ]; then
@ -102,6 +127,7 @@ if [ $# -ne 0 ]; then
declare -F configure_$func >/dev/null || continue declare -F configure_$func >/dev/null || continue
echo "Configuring $func..." echo "Configuring $func..."
eval "configure_$func" eval "configure_$func"
unset -f configure_$func
done done
return return
fi fi
@ -109,7 +135,8 @@ fi
configure_ssh configure_ssh
configure_ssh_keygen configure_ssh_keygen
configure_git configure_git
configure_gpg
configure_git_gpg
configure_miniconda configure_miniconda
configure_miniforge configure_miniforge
configure_nvm configure_nvm
configure_gpg

BIN
files/git.key.zip Normal file

Binary file not shown.