From cae73c37cd03a78e57c447f60015a02918cdb6cb Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Thu, 19 Jun 2025 23:44:53 +0200 Subject: [PATCH] Fix. --- .../desktop/home/plom/.local/bin/borgplom | 29 +++++++++++-------- .../desktop/home/plom/.local/bin/make_secrets | 7 +++-- testing/scripts/_setup_secrets_user.sh | 5 +++- testing/scripts/lib/constants_secrets | 3 ++ 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/testing/copy/desktop/home/plom/.local/bin/borgplom b/testing/copy/desktop/home/plom/.local/bin/borgplom index b0fc653..ff4ca61 100755 --- a/testing/copy/desktop/home/plom/.local/bin/borgplom +++ b/testing/copy/desktop/home/plom/.local/bin/borgplom @@ -39,6 +39,16 @@ explore_key_id() { printf '%s %s %s' "${PREFIX} ${NAME_SERVER} ${LOCATION}" } +keydata_obsolete() { + KEY_DATA=$1 + local PREFIX=$(echo "${KEY_DATA}" | cut -d' ' -f1) + if [ "${PREFIX}" = '-' ]; then + echo "Ignoring ${KEY_ID}, location doesn't match expected pattern." + return 0 + fi + return 1 +} + # exits export BORG_EXIT_CODES=modern error_exit() { abort "Aborting due to $1"; } @@ -76,11 +86,10 @@ CMDFNC_backup_keys() { mkdir -p "${PATH_TARGET_DIR}" cd "${PATH_BORG_CONF_KEYS}" ls -1 | while read _FILENAME; do + local KEY_ID=$(_id_from_file "${PATH_BORG_CONF_KEYS}/${_FILENAME}") local KEY_DATA=$(explore_key_id "${KEY_ID}") - local PREFIX=$(echo "${KEY_DATA}" | cut -d' ' -f1) - if [ "${PREFIX}" = '-' ]; then - echo "Ignoring ${KEY_ID}, location doesn't match expected patten." - continue + if keydata_obsolete "${KEY_DATA}"; then + continue; fi local NAME_SERVER=$(echo "${KEY_DATA}" | cut -d' ' -f2) local PATH_TARGET="${PATH_TARGET_DIR}/${NAME_SERVER}" @@ -184,10 +193,8 @@ CMDFNC_orgpull() { ls -1 "${PATH_BORG_CONF_SECURITY}/" > "${PATH_PIPE}" & while read _FILENAME; do local KEY_DATA=$(explore_key_id "${_FILENAME}") - local PREFIX=$(echo "${KEY_DATA}" | cut -d' ' -f1) - if [ "${PREFIX}" = '-' ]; then - echo "Ignoring ${_FILENAME}, location doesn't match expected patten." - continue + if keydata_obsolete "${KEY_DATA}"; then + continue; fi local NAME_SERVER=$(echo "${KEY_DATA}" | cut -d' ' -f2) local LOCATION=$(echo "${KEY_DATA}" | cut -d' ' -f3) @@ -220,10 +227,8 @@ CMDFNC_orgpush() { for _FILENAME in $(ls "${PATH_BORG_CONF_SECURITY}/"); do local KEY_DATA=$(explore_key_id "${_FILENAME}") - local PREFIX=$(echo "${KEY_DATA}" | cut -d' ' -f1) - if [ "${PREFIX}" = '-' ]; then - echo "Ignoring ${_FILENAME}, location doesn't match expected patten." - continue + if keydata_obsolete "${KEY_DATA}"; then + continue; fi local LOCATION=$(echo "${KEY_DATA}" | cut -d' ' -f3) local ARCHIVE="${LOCATION}::${NAME_ARCHIVE_ORG}-{utcnow:%Y-%m-%dT%H:%M}" diff --git a/testing/copy/desktop/home/plom/.local/bin/make_secrets b/testing/copy/desktop/home/plom/.local/bin/make_secrets index c03c315..6b29b00 100755 --- a/testing/copy/desktop/home/plom/.local/bin/make_secrets +++ b/testing/copy/desktop/home/plom/.local/bin/make_secrets @@ -4,7 +4,7 @@ set -e cd $(dirname "$0") . lib/abort_if_exists . lib/constants_borg # NAME_BORGAPP, PATH_BORG_CONF -. lib/constants_secrets # PATH_REL_SECRETS, PATH_SECRETS, PATH_SECRETS_BORGKEYS +. lib/constants_secrets # PATH_REL_SECRETS, PATH_SECRETS, PATH_SECRETS_BORGKEYS, PATH_SECRETS_KDBX, PATH_USER_KDBX . lib/constants_ssh # PATH_USER_SSH . lib/constants_user # USERNAME . lib/copy_and_unmount_secrets @@ -15,9 +15,12 @@ prefixed_msg_init abort_if_exists "${PATH_SECRETS}" prefixed_msg "Collecting new ${PATH_REL_SECRETS}." + mkdir "${PATH_SECRETS}" -"${NAME_BORGAPP}" backup_keys "${PATH_SECRETS_BORGKEYS}" cp -a "${PATH_USER_SSH}" "${PATH_SECRETS_SSH}" +cp -a "${PATH_USER_KDBX}" "${PATH_SECRETS_KDBX}" +"${NAME_BORGAPP}" backup_keys "${PATH_SECRETS_BORGKEYS}" + prefixed_msg "secrets file, last update: $(whoami)/$(hostname) at $(date)" > "${PATH_SECRETS}/info" mount_secrets "$1" # sets PATH_MOUNTED_SECRETS diff --git a/testing/scripts/_setup_secrets_user.sh b/testing/scripts/_setup_secrets_user.sh index b60f591..f4557c9 100644 --- a/testing/scripts/_setup_secrets_user.sh +++ b/testing/scripts/_setup_secrets_user.sh @@ -5,7 +5,7 @@ cd $(dirname "$0") . lib/abort_if_exists . lib/abort_if_not_user . lib/abort_if_offline -. lib/constants_secrets # PATH_SECRETS, PATH_SECRETS_BORGKEYS +. lib/constants_secrets # PATH_SECRETS, PATH_SECRETS_KDBX, PATH_SECRETS_SSH, PATH_SECRETS_BORGKEYS, PATH_USER_KDBX . lib/constants_ssh # PATH_USER_SSH . lib/constants_user # USERNAME . lib/constants_borg # NAME_BORGAPP @@ -32,6 +32,9 @@ mount_secrets "$1" # sets PASSPHRASE copy_and_unmount_secrets 'in' export BORG_PASSPHRASE="${PASSPHRASE}" +prefixed_msg 'Copying passwords DB …' +cp -a "${PATH_USER_KDBX}" "${PATH_SECRETS_KDBX}" + prefixed_msg 'Setting up ~/.ssh …' cp -a "${PATH_SECRETS_SSH}" "${PATH_USER_SSH}" stty -echo diff --git a/testing/scripts/lib/constants_secrets b/testing/scripts/lib/constants_secrets index ddd6064..9b0cf7e 100644 --- a/testing/scripts/lib/constants_secrets +++ b/testing/scripts/lib/constants_secrets @@ -4,3 +4,6 @@ PATH_REL_SECRETS=.secrets PATH_SECRETS="${PATH_USER_HOME}/${PATH_REL_SECRETS}" PATH_SECRETS_SSH="${PATH_SECRETS}/ssh" PATH_SECRETS_BORGKEYS="${PATH_SECRETS}/borgkeys" +FILENAME_KDBX=Passwords.kdbx +PATH_SECRETS_KDBX="${PATH_SECRETS}/${FILENAME_KDBX}" +PATH_USER_KDBX="${PATH_USER_HOME}/${FILENAME_KDBX}" -- 2.30.2