aboutsummaryrefslogtreecommitdiff
path: root/crypt.sh
diff options
context:
space:
mode:
authorFederico Angelilli <code@fedang.net>2024-01-13 21:58:04 +0100
committerFederico Angelilli <code@fedang.net>2024-01-13 21:58:04 +0100
commitd161b7cd50d34f589b5ae063518c6ee2849b56f8 (patch)
tree0757cb1d5134529c7469c6553f2137439073c2cf /crypt.sh
parenta11c0d98cb475b7c48f8673bdf48ccadecde40cd (diff)
Fix cmd_sign
Diffstat (limited to 'crypt.sh')
-rwxr-xr-xcrypt.sh13
1 files changed, 8 insertions, 5 deletions
diff --git a/crypt.sh b/crypt.sh
index 00ccd76..661abe6 100755
--- a/crypt.sh
+++ b/crypt.sh
@@ -717,7 +717,7 @@ cmd_sign() {
local loaded=0 files=()
if [[ $# -eq 0 ]]; then
- [[ $verify -eq 1 ]] || error "Expected file argument"
+ [[ $verify -eq 1 ]] || error "$PROGRAM $COMMAND [--verify|--remove] [files]" Usage
readarray -t files < <(find "$CRYPT_PATH/" -path '*/.git' -prune -o -path "$CRYPT_PATH/*.sig" -print)
else
for path in "$@"; do
@@ -743,28 +743,31 @@ cmd_sign() {
fi
if [[ $verify -eq 1 ]]; then
- printf "Verifying signatures for the keys:\n$(_color white,bold)%s$(_color reset)\n\n" "$CRYPT_SIGNING_KEY"
+ printf "Verifying signature(s) for the keys:\n$(_color white,bold)%s$(_color reset)\n\n" "$CRYPT_SIGNING_KEY"
for f in "${files[@]}"; do
- gpg_verify "${f%.sig}" && echo "$f: $(_color green)Valid$(_color reset)"
+ gpg_verify "${f%.sig}" && echo "${f#$CRYPT_PATH/}: $(_color green)Valid ✔️$(_color reset)"
done
elif [[ $remove -eq 1 ]]; then
for f in "${files[@]}"; do
- local file="$CRYPT_PATH/${f%.sig}.sig"
+ local file="${f%.sig}.sig"
[[ ! -f "$file" ]] && echo "${f%.sig} is not signed!" && continue
rm -f -v "$file"
git_prep "$file"
+
if [[ ! -e $file ]]; then
git -C "$INNER_GIT_DIR" rm -qr "$file"
git_prep "$file"
git_commit "Remove $f signature from crypt."
fi
- rmdir -p "${file%/*}" 2>/dev/null
done
else
printf "Signing with the keys:\n$(_color white,bold)%s$(_color reset)\n\n" "$CRYPT_SIGNING_KEY"
for f in "${files[@]}"; do
+ git_prep "$f.sig"
gpg_sign "$f" && echo "$(_color green)$f signed successfully$(_color reset)"
+ git -C "$INNER_GIT_DIR" add "$f" # update file
+ git_track "$f.sig" "Signing \`$f\` with $CRYPT_SIGNING_KEY."
done
fi
}