From f9a77c5c27aede4e5978eb55d9b7af781b680a1d Mon Sep 17 00:00:00 2001 From: João Augusto Costa Branco Marado Torres Date: Tue, 24 Jun 2025 12:08:41 -0300 Subject: feat!: initial commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: João Augusto Costa Branco Marado Torres --- bin/sign.sh | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 bin/sign.sh (limited to 'bin') diff --git a/bin/sign.sh b/bin/sign.sh new file mode 100755 index 0000000..92fd207 --- /dev/null +++ b/bin/sign.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Exit codes: +# 0 - Success +# 1 - Missing args +# 2 - File not found + +set -e + +usage() { + echo "Usage: $(basename "$0") [-u KEY_ID] " >&2 + echo "\t-u KEY_ID\tUse a specific GPG key to sign with (optional)" >&2 + exit 1 +} + +USER_KEY="" + +while getopts ":u:" opt; do + case "$opt" in + u) USER_KEY="$OPTARG" ;; + *) usage ;; + esac +done + +shift $((OPTIND - 1)) + +if [ $# -ne 1 ]; then + echo "Error: Missing file to sign." >&2 + usage +fi + +FILE="$1" + +if [ ! -f "$FILE" ]; then + echo "Error: File '$FILE' not found." >&2 + exit 2 +fi + +GPG_CMD="gpg --include-key-block --openpgp -b" + +if [ -n "$USER_KEY" ]; then + GPG_CMD="$GPG_CMD --local-user $USER_KEY" +fi + +eval "$GPG_CMD \"$FILE\"" && echo "Signature created: ${FILE}.sig" -- cgit v1.2.3