nix/bin/gpg-add-uid
2025-12-03 20:09:09 -06:00

35 lines
838 B
Bash
Executable file

#!/bin/bash
# Add a new UID to an existing GPG key
# Usage: gpg-add-uid "Name" "email@example.com" [key-id]
set -e
if [[ $# -lt 2 ]]; then
echo 'Usage: gpg-add-uid "Name" "email@example.com" [key-id]'
echo ""
echo "If key-id is not provided, uses the first secret key found."
exit 1
fi
NAME="$1"
EMAIL="$2"
KEY_ID="${3:-$(gpg --list-secret-keys --keyid-format LONG 2>/dev/null | grep '^sec' | head -1 | sed 's/.*\/\([A-F0-9]*\) .*/\1/')}"
if [[ -z $KEY_ID ]]; then
echo "Error: No GPG secret key found. Create one first with: gpg --full-generate-key"
exit 1
fi
echo "Adding UID '$NAME <$EMAIL>' to key $KEY_ID"
# Use expect-like input via gpg --command-fd
gpg --batch --command-fd 0 --edit-key "$KEY_ID" <<EOF
adduid
$NAME
$EMAIL
O
save
EOF
echo "Done! New UID added. Verify with: gpg --list-keys $KEY_ID"