OZXUS4F6MZQGADD3EHLKEROGNPPJ2N43IYZUCMT4ARAKNRYWI43QC
# decrypt() {
# path=$1
# $gpg --decrypt .encrypt.d/master_key.gpg |
# $gpg --batch --output - --pinentry-mode loopback --passphrase-fd 0 \
# --decrypt "$path"
# }
decrypt() {
path=$1
$gpg --decrypt .encrypt.d/master_key.gpg |
$gpg --batch --output - --passphrase-fd 0 \
--decrypt "$path"
}
# .encryptにマッチするパスをremoveして`.gpg`をつけてaddし直す
for path in $secrets_in_tracked; do
# pijulが記録しているパスのうち`*.gpg`にマッチするもの (pijul listが変わってるのでtracked_globとは重複しない)
gpg_tracked=$(pijul list | grep '\.gpg$' | sed 's/\.gpg$//')
: "↓debug gpg_tracked↓
$gpg_tracked"
case $path in
*.gpg)
break
;;
*)
pijul remove "$path" # 秘密のファイルはrecordしてはいけない
touch "$path.gpg"
# 秘密にしなければいけないファイルたち
will_be_encrypted="$tracked_glob
$gpg_tracked"
# 秘密のファイルに変更があれば暗号化し直す
for path in $will_be_encrypted; do
if [ ! -f "$path" ]; then
[ "$path" = ".encrypt.d/master_key" ] || pijul remove "$path.gpg"
else
if [ -f "$path.gpg" ] &&
[ "$($sha256sum <"$path")" != "$(decrypt "$path.gpg" | $sha256sum)" ]; then
rm "$path.gpg"
fi
if [ ! -e "$path.gpg" ]; then
encrypt "$path"
fi