mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
20 lines
1.2 KiB
Diff
20 lines
1.2 KiB
Diff
Fix unnecessary reencryptions on macOS
|
|
|
|
POSIX sed doesn't support \+ in BREs which causes the regex that
|
|
extracts a file's current keys to return nothing, meaning that files
|
|
are unnecessarily reencrypted.
|
|
This converts the regex in question to use ERE.
|
|
|
|
https://git.zx2c4.com/password-store/commit/?id=04cd3023f48cd203f6c0193e57a427226e8b431c
|
|
--- src/password-store.sh.orig
|
|
+++ src/password-store.sh
|
|
@@ -129,7 +129,7 @@ reencrypt_path() {
|
|
done
|
|
gpg_keys="$($GPG $PASSWORD_STORE_GPG_OPTS --list-keys --with-colons "${GPG_RECIPIENTS[@]}" | sed -n 's/^sub:[^idr:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u)"
|
|
fi
|
|
- current_keys="$(LC_ALL=C $GPG $PASSWORD_STORE_GPG_OPTS -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$passfile" 2>&1 | sed -n 's/^gpg: public key is \([A-F0-9]\+\)$/\1/p' | LC_ALL=C sort -u)"
|
|
+ current_keys="$(LC_ALL=C $GPG $PASSWORD_STORE_GPG_OPTS -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$passfile" 2>&1 | sed -nE 's/^gpg: public key is ([A-F0-9]+)$/\1/p' | LC_ALL=C sort -u)"
|
|
|
|
if [[ $gpg_keys != "$current_keys" ]]; then
|
|
echo "$passfile_display: reencrypting to ${gpg_keys//$'\n'/ }"
|