home · contact · privacy
Fix.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 19 Jun 2025 21:44:53 +0000 (23:44 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 19 Jun 2025 21:44:53 +0000 (23:44 +0200)
testing/copy/desktop/home/plom/.local/bin/borgplom
testing/copy/desktop/home/plom/.local/bin/make_secrets
testing/scripts/_setup_secrets_user.sh
testing/scripts/lib/constants_secrets

index b0fc653c5596686a37500bb14d9d4c9900c341c9..ff4ca612365fc898d222946aaa5c0bd49359a200 100755 (executable)
@@ -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}"
index c03c315703da6229523cf4a431f180e5321caab1..6b29b004ae337a0d8d88cea9aa0dd98999593475 100755 (executable)
@@ -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
index b60f5914130903991d29fb90d22fcfae6759ad4a..f4557c91ffc78686974ced6e648c4cf068dd81c3 100644 (file)
@@ -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
index ddd6064c809ffdce01d259788edebade2d60b59a..9b0cf7e4bbb4ef4d617a6f28d5d8a40ac3de376e 100644 (file)
@@ -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}"