From efe6c6f315a389da558be9b65ddc88f54b1eba53 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Sun, 30 Jul 2017 12:19:52 +0100
Subject: [PATCH] Backup and restore sks config files

---
 src/freedombone-app-keyserver | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/src/freedombone-app-keyserver b/src/freedombone-app-keyserver
index adc9b7340..90e4c94c8 100755
--- a/src/freedombone-app-keyserver
+++ b/src/freedombone-app-keyserver
@@ -125,6 +125,14 @@ function upgrade_keyserver {
 }
 
 function backup_local_keyserver {
+    source_directory=/etc/sks
+    if [ -d $source_directory ]; then
+        systemctl stop sks
+        dest_directory=keyserverconfig
+        function_check backup_directory_to_usb
+        backup_directory_to_usb $source_directory $dest_directory
+        systemctl start sks
+    fi
     if [[ "$(check_keyserver_directory_size)" != "0" ]]; then
         echo $'WARNING: Keyserver database size is too large to backup'
         return
@@ -145,6 +153,14 @@ function restore_local_keyserver {
     fi
     echo $"Restoring SKS Keyserver"
     systemctl stop sks
+
+    temp_restore_dir=/root/tempkeyserverconfig
+    function_check restore_directory_from_usb
+    restore_directory_from_usb $temp_restore_dir keyserverconfig
+    cp -r $temp_restore_dir/etc/sks/* /etc/sks/
+    rm -rf $temp_restore_dir
+    chown -Rc debian-sks: /etc/sks/sksconf
+
     temp_restore_dir=/root/tempkeyserver
     function_check restore_directory_from_usb
     restore_directory_from_usb $temp_restore_dir keyserver
@@ -172,6 +188,14 @@ function restore_local_keyserver {
 }
 
 function backup_remote_keyserver {
+    source_directory=/etc/sks
+    if [ -d $source_directory ]; then
+        systemctl stop sks
+        dest_directory=keyserverconfig
+        function_check backup_directory_to_friend
+        backup_directory_to_friend $source_directory $dest_directory
+        systemctl start sks
+    fi
     if [[ "$(check_keyserver_directory_size)" != "0" ]]; then
         echo $'WARNING: Keyserver database size is too large to backup'
         return
@@ -192,6 +216,14 @@ function restore_remote_keyserver {
     fi
     echo $"Restoring SKS Keyserver"
     systemctl stop sks
+
+    temp_restore_dir=/root/tempkeyserverconfig
+    function_check restore_directory_from_friend
+    restore_directory_from_friend $temp_restore_dir keyserverconfig
+    cp -r $temp_restore_dir/etc/sks/* /etc/sks/
+    rm -rf $temp_restore_dir
+    chown -Rc debian-sks: /etc/sks/sksconf
+
     temp_restore_dir=/root/tempkeyserver
     function_check restore_directory_from_friend
     restore_directory_from_friend $temp_restore_dir keyserver
-- 
GitLab