1
0

pkgs/clerie-sops: Properly escape json in clerie-sops-edit

This commit is contained in:
clerie 2024-05-02 12:39:12 +02:00
parent 730903d0d8
commit b8e666c075

View File

@ -7,6 +7,7 @@ set -euo pipefail
SECRETS_FILE="$1" SECRETS_FILE="$1"
KEY="$2" KEY="$2"
KEY_SELECTOR="$(jq -Rsc '[.]' <(echo -n "${KEY}"))"
if [[ -n $EDITOR ]]; then if [[ -n $EDITOR ]]; then
EDITOR=vim EDITOR=vim
@ -14,7 +15,7 @@ fi
TMP_FILE="$(mktemp)" TMP_FILE="$(mktemp)"
clerie-sops --decrypt --extract "[\"${KEY}\"]" "${SECRETS_FILE}" > "${TMP_FILE}" clerie-sops --decrypt --extract "${KEY_SELECTOR}" "${SECRETS_FILE}" > "${TMP_FILE}"
TMP_FILE_HASH_BEFORE="$(sha256sum "${TMP_FILE}")" TMP_FILE_HASH_BEFORE="$(sha256sum "${TMP_FILE}")"
@ -27,8 +28,8 @@ if [[ "${TMP_FILE_HASH_BEFORE}" == "${TMP_FILE_HASH_AFTER}" ]]; then
exit 0 exit 0
fi fi
JSON_QUOTED_SECRET="$(jq -Rs '.' "${TMP_FILE}")" JSON_QUOTED_SECRET="$(jq -Rsc '.' "${TMP_FILE}")"
rm "${TMP_FILE}" rm "${TMP_FILE}"
clerie-sops --set "[\"${KEY}\"] ${JSON_QUOTED_SECRET}" "${SECRETS_FILE}" clerie-sops --set "${KEY_SELECTOR} ${JSON_QUOTED_SECRET}" "${SECRETS_FILE}"