From 818282650c6036cc964302e820fcef2926c51b0c Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@robotics.uk.to>
Date: Sat, 19 Nov 2016 14:28:07 +0000
Subject: [PATCH] Backup and restore password store

---
 src/freedombone-backup-local   |  1 +
 src/freedombone-backup-remote  |  8 ++++++++
 src/freedombone-controlpanel   |  1 +
 src/freedombone-restore-local  | 13 +++++++++++++
 src/freedombone-restore-remote | 13 +++++++++++++
 5 files changed, 36 insertions(+)

diff --git a/src/freedombone-backup-local b/src/freedombone-backup-local
index d6a434e56..abdd1399d 100755
--- a/src/freedombone-backup-local
+++ b/src/freedombone-backup-local
@@ -204,6 +204,7 @@ function backup_directories {
         "/var/spool/mlmmj,                      mailinglist"
         "/etc/nginx/sites-available,            web"
         "/var/lib/tor,                          tor"
+        "/root/.passwords,                      passwordstore"
     )
 
     for dr in "${backup_dirs[@]}"
diff --git a/src/freedombone-backup-remote b/src/freedombone-backup-remote
index 25d68c4ca..e24e8ed53 100755
--- a/src/freedombone-backup-remote
+++ b/src/freedombone-backup-remote
@@ -249,6 +249,13 @@ function backup_letsencrypt {
     fi
 }
 
+function backup_passwordstore {
+    if [ -d /root/.passwords ]; then
+        echo $"Backing up password store"
+        backup_directory_to_friend /root/.passwords passwordstore
+    fi
+}
+
 function backup_tor {
     if [ -d /etc/letsencrypt ]; then
         echo $"Backing up Tor settings"
@@ -376,6 +383,7 @@ backup_configfiles
 if [[ $TEST_MODE == "no" ]]; then
     backup_users
     backup_letsencrypt
+    backup_passwordstore
     backup_tor
     backup_web_server
     backup_admin_readme
diff --git a/src/freedombone-controlpanel b/src/freedombone-controlpanel
index 52e677de3..3f9f588a4 100755
--- a/src/freedombone-controlpanel
+++ b/src/freedombone-controlpanel
@@ -887,6 +887,7 @@ function restore_data_from_storage {
     utils_installed=(configfiles
                      mariadb
                      letsencrypt
+                     passwords
                      mutt
                      gpg
                      procmail
diff --git a/src/freedombone-restore-local b/src/freedombone-restore-local
index 9ed132860..804fe0a58 100755
--- a/src/freedombone-restore-local
+++ b/src/freedombone-restore-local
@@ -227,6 +227,18 @@ function restore_letsencrypt {
     fi
 }
 
+function restore_passwordstore {
+    if [[ $RESTORE_APP != 'all' ]]; then
+        if [[ $RESTORE_APP != 'passwords' ]]; then
+            return
+        fi
+    fi
+    if [ -d $USB_MOUNT/backup/passwordstore ]; then
+        echo $"Restoring password store"
+        restore_directory_from_usb / passwordstore
+    fi
+}
+
 function restore_tor {
     if [[ $RESTORE_APP != 'all' ]]; then
         if [[ $RESTORE_APP != 'tor' ]]; then
@@ -713,6 +725,7 @@ restore_configfiles
 same_admin_user
 restore_mariadb
 restore_letsencrypt
+restore_passwordstore
 restore_tor
 restore_mutt_settings
 restore_gpg
diff --git a/src/freedombone-restore-remote b/src/freedombone-restore-remote
index 5c03c4543..dea13968b 100755
--- a/src/freedombone-restore-remote
+++ b/src/freedombone-restore-remote
@@ -219,6 +219,18 @@ function restore_letsencrypt {
     fi
 }
 
+function restore_passwordstore {
+    if [[ $RESTORE_APP != 'all' ]]; then
+        if [[ $RESTORE_APP != 'passwords' ]]; then
+            return
+        fi
+    fi
+    if [ -d $SERVER_DIRECTORY/backup/passwordstore ]; then
+        echo $"Restoring password store"
+        restore_directory_from_friend / passwordstore
+    fi
+}
+
 function restore_tor {
     if [[ $RESTORE_APP != 'all' ]]; then
         if [[ $RESTORE_APP != 'tor' ]]; then
@@ -649,6 +661,7 @@ copy_gpg_keys
 restore_configfiles
 restore_mariadb
 restore_letsencrypt
+restore_passwordstore
 restore_mutt_settings
 restore_gpg
 restore_procmail
-- 
GitLab