Browse Source

Restore using absolute or relative path

Obnam restores with the full path. duplicity restores with the relative path
Bob Mottram 7 years ago
parent
commit
52bf32cb28

+ 14
- 1
src/freedombone-app-cryptpad View File

@@ -169,7 +169,20 @@ function restore_remote_cryptpad {
169 169
         temp_restore_dir=/root/tempcryptpad
170 170
         function_check restore_directory_from_usb
171 171
         restore_directory_from_friend $temp_restore_dir cryptpad
172
-        cp -r $temp_restore_dir$CRYPTPAD_DIR/datastore/* $CRYPTPAD_DIR/datastore/
172
+
173
+        if [ ! -d $temp_restore_dir$CRYPTPAD_DIR/datastore ]; then
174
+            if [ -d $temp_restore_dir ]; then
175
+                cp -r $temp_restore_dir/* $CRYPTPAD_DIR/datastore/
176
+            else
177
+                systemctl start cryptpad
178
+                echo 'Failed to restore cryptpad'
179
+                rm -rf $temp_restore_dir
180
+                return
181
+            fi
182
+        else
183
+            cp -r $temp_restore_dir$CRYPTPAD_DIR/datastore/* $CRYPTPAD_DIR/datastore/
184
+        fi
185
+        rm -rf $temp_restore_dir
173 186
         systemctl start cryptpad
174 187
     fi
175 188
 }

+ 10
- 2
src/freedombone-app-dlna View File

@@ -113,7 +113,11 @@ function restore_local_dlna {
113 113
             temp_restore_dir=/root/tempdlna
114 114
             function_check restore_directory_from_usb
115 115
             restore_directory_from_usb $temp_restore_dir dlna
116
-            cp -r $temp_restore_dir/var/cache/minidlna/* /var/cache/minidlna/
116
+            if [ -d $temp_restore_dir/var/cache/minidlna ]; then
117
+                cp -r $temp_restore_dir/var/cache/minidlna/* /var/cache/minidlna/
118
+            else
119
+                cp -r $temp_restore_dir/* /var/cache/minidlna/
120
+            fi
117 121
             if [ ! "$?" = "0" ]; then
118 122
                 rm -rf $temp_restore_dir
119 123
                 function_check set_user_permissions
@@ -139,7 +143,11 @@ function restore_remote_dlna {
139 143
             temp_restore_dir=/root/tempdlna
140 144
             function_check restore_directory_from_friend
141 145
             restore_directory_from_friend $temp_restore_dir dlna
142
-            cp -r $temp_restore_dir/var/cache/minidlna/* /var/cache/minidlna/
146
+            if [ -d $temp_restore_dir/var/cache/minidlna ]; then
147
+                cp -r $temp_restore_dir/var/cache/minidlna/* /var/cache/minidlna/
148
+            else
149
+                cp -r $temp_restore_dir/* /var/cache/minidlna/
150
+            fi
143 151
             if [ ! "$?" = "0" ]; then
144 152
                 exit 982
145 153
             fi

+ 29
- 62
src/freedombone-app-dokuwiki View File

@@ -13,7 +13,7 @@
13 13
 # License
14 14
 # =======
15 15
 #
16
-# Copyright (C) 2014-2016 Bob Mottram <bob@freedombone.net>
16
+# Copyright (C) 2014-2017 Bob Mottram <bob@freedombone.net>
17 17
 #
18 18
 # This program is free software: you can redistribute it and/or modify
19 19
 # it under the terms of the GNU Affero General Public License as published by
@@ -144,59 +144,7 @@ function backup_local_dokuwiki {
144 144
     fi
145 145
 }
146 146
 
147
-function restore_local_dokuwiki_legacy {
148
-    if [ -d /var/lib/dokuwiki ]; then
149
-        echo $"Restoring Legacy Dokuwiki installation"
150
-        function_check get_completion_param
151
-        DOKUWIKI_DOMAIN_NAME=$(get_completion_param "dokuwiki domain")
152
-
153
-        temp_restore_dir=/root/tempdokuwiki
154
-        function_check restore_directory_from_usb
155
-        if [ -d ${USB_MOUNT}/backup/dokuwiki ]; then
156
-            restore_directory_from_usb ${temp_restore_dir} dokuwiki
157
-        else
158
-            restore_directory_from_usb ${temp_restore_dir} wiki
159
-        fi
160
-
161
-        # restore the data
162
-        cp -r ${temp_restore_dir}/var/lib/dokuwiki/data/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data
163
-        if [ ! "$?" = "0" ]; then
164
-            function_check restore_directory_from_usb
165
-            set_user_permissions
166
-            function_check backup_unmount_drive
167
-            backup_unmount_drive
168
-            rm -rf ${temp_restore_dir}
169
-            exit 73562
170
-        fi
171
-
172
-        # restore the users
173
-        cp -r ${temp_restore_dir}/var/lib/dokuwiki/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl
174
-        cp -r ${temp_restore_dir}/var/lib/dokuwiki/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/conf
175
-        if [ ! "$?" = "0" ]; then
176
-            function_check restore_directory_from_usb
177
-            set_user_permissions
178
-            function_check backup_unmount_drive
179
-            backup_unmount_drive
180
-            rm -rf ${temp_restore_dir}
181
-            exit 23985
182
-        fi
183
-        rm -rf ${temp_restore_dir}
184
-
185
-        chmod -R 755 /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data
186
-        chmod -R 755 /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib
187
-        chmod 640 /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/users.auth.php
188
-        chmod 640 /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/conf/users.auth.php
189
-        chown -R www-data:www-data /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs
190
-        echo $"Restore of Legacy Dokuwiki complete"
191
-    fi
192
-}
193
-
194 147
 function restore_local_dokuwiki {
195
-    if [ -d ${USB_MOUNT}/backup/dokuwiki ]; then
196
-        restore_local_dokuwiki_legacy
197
-        return
198
-    fi
199
-
200 148
     echo $"Restoring Dokuwiki installation"
201 149
     function_check get_completion_param
202 150
     DOKUWIKI_DOMAIN_NAME=$(get_completion_param "dokuwiki domain")
@@ -205,7 +153,11 @@ function restore_local_dokuwiki {
205 153
     temp_restore_dir=/root/tempdokuwikidat
206 154
     function_check restore_directory_from_usb
207 155
     restore_directory_from_usb ${temp_restore_dir} dokuwikidat
208
-    cp -r ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/data/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data
156
+    if [ -d ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/data ]; then
157
+        cp -r ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/data/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data
158
+    else
159
+        cp -r ${temp_restore_dir}/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data
160
+    fi
209 161
     if [ ! "$?" = "0" ]; then
210 162
         function_check restore_directory_from_usb
211 163
         set_user_permissions
@@ -220,8 +172,13 @@ function restore_local_dokuwiki {
220 172
     temp_restore_dir=/root/tempdokuwikiacl
221 173
     function_check restore_directory_from_usb
222 174
     restore_directory_from_usb ${temp_restore_dir} dokuwikiacl
223
-    cp ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/lib/plugins/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
224
-    cp ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/lib/plugins/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/conf/
175
+    if [ -d ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/lib/plugins/acl ]; then
176
+        cp ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/lib/plugins/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
177
+        cp ${temp_restore_dir}/var/www/${DOKUWIKI_DOMAIN_NAME}/htdocs/lib/plugins/acl/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/conf/
178
+    else
179
+        cp ${temp_restore_dir}/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
180
+        cp ${temp_restore_dir}/users.auth.php /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/conf/
181
+    fi
225 182
     if [ ! "$?" = "0" ]; then
226 183
         function_check restore_directory_from_usb
227 184
         set_user_permissions
@@ -257,24 +214,34 @@ function restore_remote_dokuwiki {
257 214
 
258 215
     if [ -d $SERVER_DIRECTORY/backup/dokuwikidat ]; then
259 216
         echo $"Restoring Dokuwiki data for $DOKUWIKI_DOMAIN_NAME"
260
-        restore_directory_from_friend /root/tempdokuwikidat dokuwikidat
261
-        cp -r /root/tempdokuwikidat/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data/
217
+        temp_restore_dir=/root/tempdokuwikidat
218
+        restore_directory_from_friend $temp_restore_dir dokuwikidat
219
+        if [ -d $temp_restore_dir/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data ]; then
220
+            cp -r $temp_restore_dir/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data/
221
+        else
222
+            cp -r $temp_restore_dir/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/data/
223
+        fi
262 224
         if [ ! "$?" = "0" ]; then
263 225
             exit 92634
264 226
         fi
265
-        rm -rf /root/tempdokuwikidat
227
+        rm -rf $temp_restore_dir
266 228
 
267 229
         echo $"Restore of Dokuwiki data complete"
268 230
     fi
269 231
 
270 232
     if [ -d $SERVER_DIRECTORY/backup/dokuwikiacl ]; then
271 233
         echo $"Restoring Dokuwiki users for $DOKUWIKI_DOMAIN_NAME"
272
-        restore_directory_from_friend /root/tempdokuwikiacl dokuwikiacl
273
-        cp -r /root/tempdokuwikidat/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
234
+        temp_restore_dir=/root/tempdokuwikiacl
235
+        restore_directory_from_friend $temp_restore_dir dokuwikiacl
236
+        if [ -d $temp_restore_dir/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl ]; then
237
+            cp -r $temp_restore_dir/var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
238
+        else
239
+            cp -r $temp_restore_dir/* /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs/lib/plugins/acl/
240
+        fi
274 241
         if [ ! "$?" = "0" ]; then
275 242
             exit 735287
276 243
         fi
277
-        rm -rf /root/tempdokuwikiacl
244
+        rm -rf $temp_restore_dir
278 245
 
279 246
         echo $"Restore of Dokuwiki users complete"
280 247
     fi

+ 26
- 4
src/freedombone-app-emacs View File

@@ -81,7 +81,14 @@ function restore_local_emacs {
81 81
                 echo $"Restoring Emacs config for $USERNAME"
82 82
                 function_check restore_directory_from_usb
83 83
                 restore_directory_from_usb $temp_restore_dir emacs/$USERNAME
84
-                cp -r $temp_restore_dir/home/$USERNAME/.emacs.d /home/$USERNAME/
84
+                if [ -d $temp_restore_dir/home/$USERNAME/.emacs.d ]; then
85
+                    cp -r $temp_restore_dir/home/$USERNAME/.emacs.d /home/$USERNAME/
86
+                else
87
+                    if [ ! -d /home/$USERNAME/.emacs.d ]; then
88
+                        mkdir /home/$USERNAME/.emacs.d
89
+                    fi
90
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.emacs.d
91
+                fi
85 92
                 if [ ! "$?" = "0" ]; then
86 93
                     rm -rf $temp_restore_dir
87 94
                     function_check set_user_permissions
@@ -90,7 +97,11 @@ function restore_local_emacs {
90 97
                     backup_unmount_drive
91 98
                     exit 664
92 99
                 fi
93
-                cp -f $temp_restore_dir/home/$USERNAME/.emacs.d/dotemacs /home/$USERNAME/.emacs
100
+                if [ -d $temp_restore_dir/home/$USERNAME/.emacs.d ]; then
101
+                    cp -f $temp_restore_dir/home/$USERNAME/.emacs.d/dotemacs /home/$USERNAME/.emacs
102
+                else
103
+                    cp -f $temp_restore_dir/dotemacs /home/$USERNAME/.emacs
104
+                fi
94 105
                 rm -rf $temp_restore_dir
95 106
             fi
96 107
         done
@@ -125,7 +136,14 @@ function restore_remote_emacs {
125 136
                 echo $"Restoring Emacs config for $USERNAME"
126 137
                 function_check restore_directory_from_friend
127 138
                 restore_directory_from_friend $temp_restore_dir emacs/$USERNAME
128
-                cp -r $temp_restore_dir/home/$USERNAME/.emacs.d /home/$USERNAME/
139
+                if [ -d $temp_restore_dir/home/$USERNAME/.emacs.d ]; then
140
+                    cp -r $temp_restore_dir/home/$USERNAME/.emacs.d /home/$USERNAME/
141
+                else
142
+                    if [ ! -d /home/$USERNAME/.emacs.d ]; then
143
+                        mkdir /home/$USERNAME/.emacs.d
144
+                    fi
145
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.emacs.d/*
146
+                fi
129 147
                 if [ ! "$?" = "0" ]; then
130 148
                     rm -rf $temp_restore_dir
131 149
                     function_check set_user_permissions
@@ -134,7 +152,11 @@ function restore_remote_emacs {
134 152
                     backup_unmount_drive
135 153
                     exit 664
136 154
                 fi
137
-                cp -f $temp_restore_dir/home/$USERNAME/.emacs.d/dotemacs /home/$USERNAME/.emacs
155
+                if [ -d $temp_restore_dir/home/$USERNAME/.emacs.d ]; then
156
+                    cp -f $temp_restore_dir/home/$USERNAME/.emacs.d/dotemacs /home/$USERNAME/.emacs
157
+                else
158
+                    cp -f $temp_restore_dir/dotemacs /home/$USERNAME/.emacs
159
+                fi
138 160
                 rm -rf $temp_restore_dir
139 161
             fi
140 162
         done

+ 10
- 2
src/freedombone-app-ghost View File

@@ -251,7 +251,11 @@ function restore_local_ghost {
251 251
         function_check restore_directory_from_usb
252 252
         restore_directory_from_usb $temp_restore_dir ghostcontent
253 253
         if [ -d $temp_restore_dir ]; then
254
-            cp -r $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
254
+            if [ -d $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content ]; then
255
+                cp -r $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
256
+            else
257
+                cp -r $temp_restore_dir/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
258
+            fi
255 259
             chown -R ghost:ghost /var/www/$GHOST_DOMAIN_NAME/htdocs/content
256 260
             rm -rf $temp_restore_dir
257 261
         fi
@@ -291,7 +295,11 @@ function restore_remote_ghost {
291 295
     function_check restore_directory_from_friend
292 296
     restore_directory_from_friend $temp_restore_dir ghostcontent
293 297
     if [ -d $temp_restore_dir ]; then
294
-        cp -r $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
298
+        if [ -d $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content ]; then
299
+            cp -r $temp_restore_dir/var/www/$GHOST_DOMAIN_NAME/htdocs/content/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
300
+        else
301
+            cp -r $temp_restore_dir/* /var/www/$GHOST_DOMAIN_NAME/htdocs/content/
302
+        fi
295 303
         chown -R ghost: /var/www/$GHOST_DOMAIN_NAME/htdocs
296 304
         rm -rf $temp_restore_dir
297 305
     fi

+ 36
- 6
src/freedombone-app-gnusocial View File

@@ -430,16 +430,31 @@ function restore_local_gnusocial {
430 430
         function_check restore_directory_from_usb
431 431
         restore_directory_from_usb $temp_restore_dir gnusocialconfig
432 432
         if [ -d $temp_restore_dir ]; then
433
-            cp $temp_restore_dir$gnusocial_dir/backup/config.php $gnusocial_dir/
433
+            if [ -d cp $temp_restore_dir$gnusocial_dir ]; then
434
+                cp $temp_restore_dir$gnusocial_dir/backup/config.php $gnusocial_dir/
435
+                cp -rp $temp_restore_dir$gnusocial_dir/static $gnusocial_dir/
436
+            else
437
+                cp $temp_restore_dir/backup/config.php $gnusocial_dir/
438
+                if [ ! -d $gnusocial_dir/static ]; then
439
+                    mkdir $gnusocial_dir/static
440
+                fi
441
+                cp -rp $temp_restore_dir/static/* $gnusocial_dir/static/
442
+            fi
434 443
             chown www-data:www-data $gnusocial_dir/config.php
435
-            cp -rp $temp_restore_dir$gnusocial_dir/static $gnusocial_dir/
436 444
             chown -R www-data:www-data $gnusocial_dir/static
437 445
             rm -rf $temp_restore_dir
438 446
         fi
439 447
 
440 448
         restore_directory_from_usb $temp_restore_dir gnusocialfile
441 449
         if [ -d $temp_restore_dir ]; then
442
-            cp -rp $temp_restore_dir$gnusocial_dir/file $gnusocial_dir/
450
+            if [ -d cp $temp_restore_dir$gnusocial_dir/file ]; then
451
+                cp -rp $temp_restore_dir$gnusocial_dir/file $gnusocial_dir/
452
+            else
453
+                if [ ! -d $gnusocial_dir/file ]; then
454
+                    mkdir $gnusocial_dir/file
455
+                fi
456
+                cp -rp $temp_restore_dir/* $gnusocial_dir/file
457
+            fi
443 458
             chown -R www-data:www-data $gnusocial_dir/file
444 459
             rm -rf $temp_restore_dir
445 460
         fi
@@ -511,16 +526,31 @@ function restore_remote_gnusocial {
511 526
         function_check restore_directory_from_friend
512 527
         restore_directory_from_friend $temp_restore_dir gnusocialconfig
513 528
         if [ -d $temp_restore_dir ]; then
514
-            cp $temp_restore_dir$gnusocial_dir/backup/config.php $gnusocial_dir/
529
+            if [ -d $temp_restore_dir$gnusocial_dir ]; then
530
+                cp $temp_restore_dir$gnusocial_dir/backup/config.php $gnusocial_dir/
531
+                cp -rp $temp_restore_dir$gnusocial_dir/static $gnusocial_dir/
532
+            else
533
+                cp $temp_restore_dir/backup/config.php $gnusocial_dir/
534
+                if [ ! -d $gnusocial_dir/static ]; then
535
+                    mkdir $gnusocial_dir/static
536
+                fi
537
+                cp -rp $temp_restore_dir/static/* $gnusocial_dir/static/
538
+            fi
515 539
             chown www-data:www-data $gnusocial_dir/config.php
516
-            cp -rp $temp_restore_dir$gnusocial_dir/static $gnusocial_dir/
517 540
             chown -R www-data:www-data $gnusocial_dir/static
518 541
             rm -rf $temp_restore_dir
519 542
         fi
520 543
 
521 544
         restore_directory_from_friend $temp_restore_dir gnusocialfile
522 545
         if [ -d $temp_restore_dir ]; then
523
-            cp -rp $temp_restore_dir$gnusocial_dir/file $gnusocial_dir/
546
+            if [ ! -d $temp_restore_dir$gnusocial_dir/file ]; then
547
+                cp -rp $temp_restore_dir$gnusocial_dir/file $gnusocial_dir/
548
+            else
549
+                if [ ! -d $gnusocial_dir/file ]; then
550
+                    mkdir $gnusocial_dir/file
551
+                fi
552
+                cp -rp $temp_restore_dir/* $gnusocial_dir/file/
553
+            fi
524 554
             chown -R www-data:www-data $gnusocial_dir/file
525 555
             rm -rf $temp_restore_dir
526 556
         fi

+ 30
- 6
src/freedombone-app-gogs View File

@@ -249,7 +249,11 @@ function restore_local_gogs {
249 249
             if [ ! -d /home/${GOGS_USERNAME}/custom ]; then
250 250
                 mkdir -p /home/${GOGS_USERNAME}/custom
251 251
             fi
252
-            cp -r ${temp_restore_dir}/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom
252
+            if [ ! -d ${temp_restore_dir}/home/${GOGS_USERNAME}/custom ]; then
253
+                cp -r ${temp_restore_dir}/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom
254
+            else
255
+                cp -r ${temp_restore_dir}/* /home/${GOGS_USERNAME}/custom/
256
+            fi
253 257
             if [ ! "$?" = "0" ]; then
254 258
                 function_check set_user_permissions
255 259
                 set_user_permissions
@@ -260,7 +264,11 @@ function restore_local_gogs {
260 264
             echo $"Restoring Gogs repos"
261 265
             function_check restore_directory_from_usb
262 266
             restore_directory_from_usb ${temp_restore_dir}repos gogsrepos
263
-            cp -r ${temp_restore_dir}repos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
267
+            if [ ! -d ${temp_restore_dir}repos/home/${GOGS_USERNAME}/gogs-repositories ]; then
268
+                cp -r ${temp_restore_dir}repos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
269
+            else
270
+                cp -r ${temp_restore_dir}/* /home/${GOGS_USERNAME}/gogs-repositories/
271
+            fi
264 272
             if [ ! "$?" = "0" ]; then
265 273
                 function_check set_user_permissions
266 274
                 set_user_permissions
@@ -274,7 +282,11 @@ function restore_local_gogs {
274 282
             if [ ! -d /home/${GOGS_USERNAME}/.ssh ]; then
275 283
                 mkdir /home/${GOGS_USERNAME}/.ssh
276 284
             fi
277
-            cp -r ${temp_restore_dir}ssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
285
+            if [ -d ${temp_restore_dir}ssh/home/${GOGS_USERNAME}/.ssh ]; then
286
+                cp -r ${temp_restore_dir}ssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
287
+            else
288
+                cp -r ${temp_restore_dir}/* /home/${GOGS_USERNAME}/.ssh/
289
+            fi
278 290
             if [ ! "$?" = "0" ]; then
279 291
                 function_check set_user_permissions
280 292
                 set_user_permissions
@@ -338,13 +350,21 @@ function restore_remote_gogs {
338 350
             if [ ! -d /home/${GOGS_USERNAME}/custom ]; then
339 351
                 mkdir -p /home/${GOGS_USERNAME}/custom
340 352
             fi
341
-            cp -r /root/tempgogs/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom/
353
+            if [ -d /root/tempgogs/home/${GOGS_USERNAME}/custom ]; then
354
+                cp -r /root/tempgogs/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom/
355
+            else
356
+                cp -r /root/tempgogs/* /home/${GOGS_USERNAME}/custom/
357
+            fi
342 358
             if [ ! "$?" = "0" ]; then
343 359
                 exit 58852
344 360
             fi
345 361
             echo $"Restoring Gogs repos"
346 362
             restore_directory_from_friend /root/tempgogsrepos gogsrepos
347
-            cp -r /root/tempgogsrepos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
363
+            if [ -d /root/tempgogsrepos/home/${GOGS_USERNAME}/gogs-repositories ]; then
364
+                cp -r /root/tempgogsrepos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
365
+            else
366
+                cp -r /root/tempgogsrepos/* /home/${GOGS_USERNAME}/gogs-repositories/
367
+            fi
348 368
             if [ ! "$?" = "0" ]; then
349 369
                 exit 7649
350 370
             fi
@@ -353,7 +373,11 @@ function restore_remote_gogs {
353 373
             if [ ! -d /home/${GOGS_USERNAME}/.ssh ]; then
354 374
                 mkdir /home/${GOGS_USERNAME}/.ssh
355 375
             fi
356
-            cp -r /root/tempgogsssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
376
+            if [ -d /root/tempgogsssh/home/${GOGS_USERNAME}/.ssh ]; then
377
+                cp -r /root/tempgogsssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
378
+            else
379
+                cp -r /root/tempgogsssh/* /home/${GOGS_USERNAME}/.ssh/
380
+            fi
357 381
             if [ ! "$?" = "0" ]; then
358 382
                 exit 74239
359 383
             fi

+ 20
- 4
src/freedombone-app-htmly View File

@@ -249,8 +249,15 @@ function restore_local_htmly {
249 249
             fi
250 250
             mv /var/www/${HTMLY_DOMAIN_NAME}/htdocs /var/www/${HTMLY_DOMAIN_NAME}/previous
251 251
         fi
252
-        temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
253
-        cp -r ${temp_source_dir} /var/www/${HTMLY_DOMAIN_NAME}/
252
+        if [ -d ${temp_restore_dir}/var/www/${HTMLY_DOMAIN_NAME}/htdocs ]; then
253
+            temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
254
+            cp -r ${temp_source_dir} /var/www/${HTMLY_DOMAIN_NAME}/
255
+        else
256
+            if [ ! -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs ]; then
257
+                mkdir /var/www/${HTMLY_DOMAIN_NAME}/htdocs
258
+            fi
259
+            cp -r ${temp_restore_dir}/* /var/www/${HTMLY_DOMAIN_NAME}/htdocs/
260
+        fi
254 261
         if [ ! "$?" = "0" ]; then
255 262
             if [ -d /var/www/${HTMLY_DOMAIN_NAME}/previous ]; then
256 263
                 mv /var/www/${HTMLY_DOMAIN_NAME}/previous /var/www/${HTMLY_DOMAIN_NAME}/htdocs
@@ -315,8 +322,17 @@ function restore_remote_htmly {
315 322
             fi
316 323
             mv /var/www/${HTMLY_DOMAIN_NAME}/htdocs /var/www/${HTMLY_DOMAIN_NAME}/previous
317 324
         fi
318
-        temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
319
-        cp -r ${temp_source_dir} /var/www/${HTMLY_DOMAIN_NAME}/
325
+
326
+        if [ -d ${temp_restore_dir}/var/www/${HTMLY_DOMAIN_NAME}/htdocs ]; then
327
+            temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
328
+            cp -r ${temp_source_dir} /var/www/${HTMLY_DOMAIN_NAME}/
329
+        else
330
+            if [ ! -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs ]; then
331
+                mkdir /var/www/${HTMLY_DOMAIN_NAME}/htdocs
332
+            fi
333
+            cp -r ${temp_restore_dir}/* /var/www/${HTMLY_DOMAIN_NAME}/htdocs/
334
+        fi
335
+
320 336
         if [ ! "$?" = "0" ]; then
321 337
             if [ -d /var/www/${HTMLY_DOMAIN_NAME}/previous ]; then
322 338
                 mv /var/www/${HTMLY_DOMAIN_NAME}/previous /var/www/${HTMLY_DOMAIN_NAME}/htdocs

+ 10
- 2
src/freedombone-app-ipfs View File

@@ -119,7 +119,11 @@ function restore_local_ipfs {
119 119
         function_check restore_directory_from_usb
120 120
         restore_directory_from_usb $temp_restore_dir ipfs
121 121
         ADMIN_USERNAME=$(get_completion_param "Admin user")
122
-        cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
122
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs ]; then
123
+            cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
124
+        else
125
+            cp -rf $temp_restore_dir/* /home/$ADMIN_USERNAME/.ipfs
126
+        fi
123 127
         if [ ! "$?" = "0" ]; then
124 128
             rm -rf $temp_restore_dir
125 129
             function_check set_user_permissions
@@ -151,7 +155,11 @@ function restore_remote_ipfs {
151 155
         temp_restore_dir=/root/tempipfs
152 156
         function_check restore_directory_from_friend
153 157
         restore_directory_from_friend $temp_restore_dir ipfs
154
-        cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
158
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs ]; then
159
+            cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
160
+        else
161
+            cp -rf $temp_restore_dir/* /home/$ADMIN_USERNAME/.ipfs
162
+        fi
155 163
         if [ ! "$?" = "0" ]; then
156 164
             function_check set_user_permissions
157 165
             set_user_permissions

+ 26
- 4
src/freedombone-app-kanboard View File

@@ -243,14 +243,25 @@ function restore_local_kanboard {
243 243
         function_check restore_directory_from_usb
244 244
         restore_directory_from_usb $temp_restore_dir kanboardconfig
245 245
         if [ -d $temp_restore_dir ]; then
246
-            cp $temp_restore_dir$kanboard_dir/backup/config.php $kanboard_dir/
246
+            if [ -d $temp_restore_dir$kanboard_dir/backup ]; then
247
+                cp $temp_restore_dir$kanboard_dir/backup/config.php $kanboard_dir/
248
+            else
249
+                cp $temp_restore_dir/config.php $kanboard_dir/
250
+            fi
247 251
             chown www-data:www-data $kanboard_dir/config.php
248 252
             rm -rf $temp_restore_dir
249 253
         fi
250 254
 
251 255
         restore_directory_from_usb $temp_restore_dir kanboardfile
252 256
         if [ -d $temp_restore_dir ]; then
253
-            cp -rp $temp_restore_dir$kanboard_dir/data $kanboard_dir/
257
+            if [ -d $temp_restore_dir$kanboard_dir/data ]; then
258
+                cp -rp $temp_restore_dir$kanboard_dir/data $kanboard_dir/
259
+            else
260
+                if [ ! -d $kanboard_dir/data ]; then
261
+                    mkdir $kanboard_dir/data
262
+                fi
263
+                cp -rp $temp_restore_dir/* $kanboard_dir/data/
264
+            fi
254 265
             chown -R www-data:www-data $kanboard_dir/data
255 266
             rm -rf $temp_restore_dir
256 267
         fi
@@ -313,14 +324,25 @@ function restore_remote_kanboard {
313 324
         function_check restore_directory_from_friend
314 325
         restore_directory_from_friend $temp_restore_dir kanboardconfig
315 326
         if [ -d $temp_restore_dir ]; then
316
-            cp $temp_restore_dir$kanboard_dir/backup/config.php $kanboard_dir/
327
+            if [ -d $temp_restore_dir$kanboard_dir/backup ]; then
328
+                cp $temp_restore_dir$kanboard_dir/backup/config.php $kanboard_dir/
329
+            else
330
+                cp $temp_restore_dir/config.php $kanboard_dir/
331
+            fi
317 332
             chown www-data:www-data $kanboard_dir/config.php
318 333
             rm -rf $temp_restore_dir
319 334
         fi
320 335
 
321 336
         restore_directory_from_friend $temp_restore_dir kanboardfile
322 337
         if [ -d $temp_restore_dir ]; then
323
-            cp -rp $temp_restore_dir$kanboard_dir/data $kanboard_dir/
338
+            if [ -d $temp_restore_dir$kanboard_dir/data ]; then
339
+                cp -rp $temp_restore_dir$kanboard_dir/data $kanboard_dir/
340
+            else
341
+                if [ ! -d $kanboard_dir/data ]; then
342
+                    mkdir $kanboard_dir/data
343
+                fi
344
+                cp -rp $temp_restore_dir/* $kanboard_dir/data/
345
+            fi
324 346
             chown -R www-data:www-data $kanboard_dir/data
325 347
             rm -rf $temp_restore_dir
326 348
         fi

+ 26
- 4
src/freedombone-app-keyserver View File

@@ -202,7 +202,11 @@ function restore_local_keyserver {
202 202
     temp_restore_dir=/root/tempkeyserverconfig
203 203
     function_check restore_directory_from_usb
204 204
     restore_directory_from_usb $temp_restore_dir keyserverconfig
205
-    cp -r $temp_restore_dir/etc/sks/* /etc/sks/
205
+    if [ -d $temp_restore_dir/etc/sks ]; then
206
+        cp -r $temp_restore_dir/etc/sks/* /etc/sks/
207
+    else
208
+        cp -r $temp_restore_dir/* /etc/sks/
209
+    fi
206 210
     rm -rf $temp_restore_dir
207 211
     chown -Rc debian-sks: /etc/sks/sksconf
208 212
     chown -Rc debian-sks: /etc/sks/mailsync
@@ -211,7 +215,14 @@ function restore_local_keyserver {
211 215
     function_check restore_directory_from_usb
212 216
     restore_directory_from_usb $temp_restore_dir keyserver
213 217
     mv /var/lib/sks/DB /var/lib/sks/DB_prev
214
-    cp -r $temp_restore_dir/var/lib/sks/DB /var/lib/sks/DB
218
+    if [ -d $temp_restore_dir/var/lib/sks/DB ]; then
219
+        cp -r $temp_restore_dir/var/lib/sks/DB /var/lib/sks/DB
220
+    else
221
+        if [ ! -d /var/lib/sks/DB ]; then
222
+            mkdir /var/lib/sks/DB
223
+        fi
224
+        cp -r $temp_restore_dir/* /var/lib/sks/DB
225
+    fi
215 226
     if [ ! "$?" = "0" ]; then
216 227
         # restore the old database
217 228
         rm -rf /var/lib/sks/DB
@@ -272,7 +283,11 @@ function restore_remote_keyserver {
272 283
     temp_restore_dir=/root/tempkeyserverconfig
273 284
     function_check restore_directory_from_friend
274 285
     restore_directory_from_friend $temp_restore_dir keyserverconfig
275
-    cp -r $temp_restore_dir/etc/sks/* /etc/sks/
286
+    if [ -d $temp_restore_dir/etc/sks ]; then
287
+        cp -r $temp_restore_dir/etc/sks/* /etc/sks/
288
+    else
289
+        cp -r $temp_restore_dir/* /etc/sks/
290
+    fi
276 291
     rm -rf $temp_restore_dir
277 292
     chown -Rc debian-sks: /etc/sks/sksconf
278 293
     chown -Rc debian-sks: /etc/sks/mailsync
@@ -281,7 +296,14 @@ function restore_remote_keyserver {
281 296
     function_check restore_directory_from_friend
282 297
     restore_directory_from_friend $temp_restore_dir keyserver
283 298
     mv /var/lib/sks/DB /var/lib/sks/DB_prev
284
-    cp -r $temp_restore_dir/var/lib/sks/DB /var/lib/sks/DB
299
+    if [ -d $temp_restore_dir/var/lib/sks/DB ]; then
300
+        cp -r $temp_restore_dir/var/lib/sks/DB /var/lib/sks/DB
301
+    else
302
+        if [ ! -d /var/lib/sks/DB ]; then
303
+            mkdir /var/lib/sks/DB
304
+        fi
305
+        cp -r $temp_restore_dir/* /var/lib/sks/DB
306
+    fi
285 307
     if [ ! "$?" = "0" ]; then
286 308
         # restore the old database
287 309
         rm -rf /var/lib/sks/DB

+ 20
- 4
src/freedombone-app-matrix View File

@@ -415,7 +415,11 @@ function restore_local_matrix {
415 415
         temp_restore_dir=/root/tempmatrix
416 416
         function_check restore_directory_from_usb
417 417
         restore_directory_from_usb $temp_restore_dir matrix
418
-        cp -r $temp_restore_dir/etc/matrix/* /etc/matrix
418
+        if [ -d $temp_restore_dir/etc/matrix ]; then
419
+            cp -r $temp_restore_dir/etc/matrix/* /etc/matrix
420
+        else
421
+            cp -r $temp_restore_dir/* /etc/matrix/
422
+        fi
419 423
         if [ ! "$?" = "0" ]; then
420 424
             function_check backup_unmount_drive
421 425
             backup_unmount_drive
@@ -426,7 +430,11 @@ function restore_local_matrix {
426 430
 
427 431
         temp_restore_dir=/root/tempmatrixdata
428 432
         restore_directory_from_usb $temp_restore_dir matrixdata
429
-        cp -r $temp_restore_dir$MATRIX_DATA_DIR/* $MATRIX_DATA_DIR
433
+        if [ -d $temp_restore_dir$MATRIX_DATA_DIR ]; then
434
+            cp -r $temp_restore_dir$MATRIX_DATA_DIR/* $MATRIX_DATA_DIR
435
+        else
436
+            cp -r $temp_restore_dir/* $MATRIX_DATA_DIR/
437
+        fi
430 438
         if [ ! "$?" = "0" ]; then
431 439
             function_check backup_unmount_drive
432 440
             backup_unmount_drive
@@ -472,7 +480,11 @@ function restore_remote_matrix {
472 480
         temp_restore_dir=/root/tempmatrix
473 481
         function_check restore_directory_from_friend
474 482
         restore_directory_from_friend $temp_restore_dir matrix
475
-        cp -r $temp_restore_dir/etc/matrix/* /etc/matrix
483
+        if [ -d $temp_restore_dir/etc/matrix ]; then
484
+            cp -r $temp_restore_dir/etc/matrix/* /etc/matrix
485
+        else
486
+            cp -r $temp_restore_dir/* /etc/matrix/
487
+        fi
476 488
         if [ ! "$?" = "0" ]; then
477 489
             exit 38935
478 490
         fi
@@ -481,7 +493,11 @@ function restore_remote_matrix {
481 493
 
482 494
         temp_restore_dir=/root/tempmatrixdata
483 495
         restore_directory_from_friend $temp_restore_dir matrixdata
484
-        cp -r $temp_restore_dir$MATRIX_DATA_DIR/* $MATRIX_DATA_DIR
496
+        if [ -d $temp_restore_dir$MATRIX_DATA_DIR ]; then
497
+            cp -r $temp_restore_dir$MATRIX_DATA_DIR/* $MATRIX_DATA_DIR
498
+        else
499
+            cp -r $temp_restore_dir/* $MATRIX_DATA_DIR/
500
+        fi
485 501
         if [ ! "$?" = "0" ]; then
486 502
             exit 60923
487 503
         fi

+ 25
- 8
src/freedombone-app-mediagoblin View File

@@ -177,7 +177,11 @@ function restore_local_mediagoblin {
177 177
         temp_restore_dir=/root/tempmediagoblin
178 178
         function_check restore_directory_from_usb
179 179
         restore_directory_from_usb ${temp_restore_dir} mediagoblin
180
-        cp -r ${temp_restore_dir}$MEDIAGOBLIN_BASE_DIR/* $MEDIAGOBLIN_BASE_DIR/
180
+        if [ -d ${temp_restore_dir}$MEDIAGOBLIN_BASE_DIR ]; then
181
+            cp -r ${temp_restore_dir}$MEDIAGOBLIN_BASE_DIR/* $MEDIAGOBLIN_BASE_DIR/
182
+        else
183
+            cp -r ${temp_restore_dir}/* $MEDIAGOBLIN_BASE_DIR/
184
+        fi
181 185
         if [ ! "$?" = "0" ]; then
182 186
             function_check restore_directory_from_usb
183 187
             set_user_permissions
@@ -186,7 +190,11 @@ function restore_local_mediagoblin {
186 190
             exit 45327
187 191
         fi
188 192
         restore_directory_from_usb ${temp_restore_dir}2 mediagoblindata
189
-        cp -r ${temp_restore_dir}2/var/lib/mediagoblin/* /var/lib/mediagoblin/
193
+        if [ -d ${temp_restore_dir}2/var/lib/mediagoblin ]; then
194
+            cp -r ${temp_restore_dir}2/var/lib/mediagoblin/* /var/lib/mediagoblin/
195
+        else
196
+            cp -r ${temp_restore_dir}2/* /var/lib/mediagoblin/
197
+        fi
190 198
         if [ ! "$?" = "0" ]; then
191 199
             function_check set_user_permissions
192 200
             set_user_permissions
@@ -214,21 +222,30 @@ function backup_remote_mediagoblin {
214 222
 function restore_remote_mediagoblin {
215 223
     MEDIAGOBLIN_BASE_DIR=/var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
216 224
     if [ -d $SERVER_DIRECTORY/backup/mediagoblin ]; then
225
+        temp_restore_dir=/root/tempmediagoblin
217 226
         function_check get_completion_param
218 227
         MEDIAGOBLIN_DOMAIN_NAME=$(get_completion_param "mediagoblin domain")
219 228
         function_check restore_directory_from_friend
220
-        restore_directory_from_friend /root/tempmediagoblin mediagoblin
221
-        cp -r /root/tempmediagoblin/var/lib/mediagoblin/* /var/lib/mediagoblin/
229
+        restore_directory_from_friend $temp_restore_dir mediagoblin
230
+        if [ -d ${temp_restore_dir}$MEDIAGOBLIN_BASE_DIR ]; then
231
+            cp -r ${temp_restore_dir}$MEDIAGOBLIN_BASE_DIR/* $MEDIAGOBLIN_BASE_DIR/
232
+        else
233
+            cp -r ${temp_restore_dir}/* $MEDIAGOBLIN_BASE_DIR/
234
+        fi
222 235
         if [ ! "$?" = "0" ]; then
223 236
             exit 264824
224 237
         fi
225
-        restore_directory_from_friend /root/tempmediagoblin2 mediagoblindata
226
-        cp -r /root/tempmediagoblin/var/lib/mediagoblin/* /var/lib/mediagoblin/
238
+        restore_directory_from_friend ${temp_restore_dir}2 mediagoblindata
239
+        if [ -d ${temp_restore_dir}2/var/lib/mediagoblin ]; then
240
+            cp -r ${temp_restore_dir}2/var/lib/mediagoblin/* /var/lib/mediagoblin/
241
+        else
242
+            cp -r ${temp_restore_dir}2/* /var/lib/mediagoblin/
243
+        fi
227 244
         if [ ! "$?" = "0" ]; then
228 245
             exit 268492
229 246
         fi
230
-        rm -rf /root/tempmediagoblin
231
-        rm -rf /root/tempmediagoblin2
247
+        rm -rf ${temp_restore_dir}
248
+        rm -rf ${temp_restore_dir}2
232 249
         chown -hR mediagoblin:www-data $MEDIAGOBLIN_BASE_DIR
233 250
         chown -hR mediagoblin:www-data /var/lib/mediagoblin
234 251
         chmod -R g+wx /var/lib/mediagoblin

+ 25
- 5
src/freedombone-app-mumble View File

@@ -107,7 +107,11 @@ function restore_local_mumble {
107 107
         function_check restore_directory_from_usb
108 108
         restore_directory_from_usb $temp_restore_dir voip
109 109
         restore_directory_from_usb $temp_restore_dir mumble
110
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
110
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
111
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
112
+        else
113
+            cp -f $temp_restore_dir/mumble-server.ini /etc/
114
+        fi
111 115
         if [ ! "$?" = "0" ]; then
112 116
             rm -rf $temp_restore_dir
113 117
             function_check set_user_permissions
@@ -116,7 +120,11 @@ function restore_local_mumble {
116 120
             backup_unmount_drive
117 121
             exit 3679
118 122
         fi
119
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
123
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
124
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
125
+        else
126
+            cp -f $temp_restore_dir/mumble-server.sqlite /var/lib/mumble-server/
127
+        fi
120 128
         if [ ! "$?" = "0" ]; then
121 129
             rm -rf $temp_restore_dir
122 130
             function_check set_user_permissions
@@ -152,17 +160,29 @@ function restore_remote_mumble {
152 160
         temp_restore_dir=/root/tempmumble
153 161
         function_check restore_directory_from_friend
154 162
         restore_directory_from_friend $temp_restore_dir mumble
155
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
163
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
164
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
165
+        else
166
+            cp -f $temp_restore_dir/mumble-server.ini /etc/
167
+        fi
156 168
         if [ ! "$?" = "0" ]; then
157 169
             rm -rf $temp_restore_dir
158 170
             exit 7823
159 171
         fi
160
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
172
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
173
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
174
+        else
175
+            cp -f $temp_restore_dir/sipwitch.conf /etc/sipwitch.conf
176
+        fi
161 177
         if [ ! "$?" = "0" ]; then
162 178
             rm -rf $temp_restore_dir
163 179
             exit 7823
164 180
         fi
165
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
181
+        if [ $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
182
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
183
+        else
184
+            cp -f $temp_restore_dir/mumble-server.sqlite /var/lib/mumble-server/
185
+        fi
166 186
         if [ ! "$?" = "0" ]; then
167 187
             rm -rf $temp_restore_dir
168 188
             exit 276

+ 28
- 8
src/freedombone-app-nextcloud View File

@@ -254,8 +254,13 @@ function restore_local_nextcloud {
254 254
 
255 255
         temp_restore_dir=/root/tempnextcloudfiles
256 256
         restore_directory_from_usb $temp_restore_dir nextcloudfiles
257
-        temp_source_dir=$(find ${temp_restore_dir} -name data)
258
-        cp -r ${temp_source_dir} /var/www/${NEXTCLOUD_DOMAIN_NAME}/
257
+
258
+        if [ -d $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/data ]; then
259
+            cp -r $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/data /var/www/${NEXTCLOUD_DOMAIN_NAME}/
260
+        else
261
+            cp -r $temp_restore_dir/* /var/www/${NEXTCLOUD_DOMAIN_NAME}/
262
+        fi
263
+
259 264
         if [ ! "$?" = "0" ]; then
260 265
             set_user_permissions
261 266
             backup_unmount_drive
@@ -265,8 +270,13 @@ function restore_local_nextcloud {
265 270
 
266 271
         temp_restore_dir=/root/tempnextcloudconfig
267 272
         restore_directory_from_usb $temp_restore_dir nextcloudconfig
268
-        temp_source_dir=$(find ${temp_restore_dir} -name config)
269
-        cp -r ${temp_source_dir} /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/
273
+
274
+        if [ -d $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config ]; then
275
+            cp -r $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs
276
+        else
277
+            cp -r $temp_restore_dir/* /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config/
278
+        fi
279
+
270 280
         if [ ! "$?" = "0" ]; then
271 281
             set_user_permissions
272 282
             backup_unmount_drive
@@ -324,8 +334,13 @@ function restore_remote_nextcloud {
324 334
 
325 335
         temp_restore_dir=/root/tempnextcloudfiles
326 336
         restore_directory_from_friend $temp_restore_dir nextcloudfiles
327
-        temp_source_dir=$(find ${temp_restore_dir} -name data)
328
-        cp -r ${temp_source_dir} /var/www/${NEXTCLOUD_DOMAIN_NAME}/
337
+
338
+        if [ -d $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/data ]; then
339
+            cp -r $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/data /var/www/${NEXTCLOUD_DOMAIN_NAME}/
340
+        else
341
+            cp -r $temp_restore_dir/* /var/www/${NEXTCLOUD_DOMAIN_NAME}/
342
+        fi
343
+
329 344
         if [ ! "$?" = "0" ]; then
330 345
             exit 768254
331 346
         fi
@@ -333,8 +348,13 @@ function restore_remote_nextcloud {
333 348
 
334 349
         temp_restore_dir=/root/tempnextcloudconfig
335 350
         restore_directory_from_friend $temp_restore_dir nextcloudconfig
336
-        temp_source_dir=$(find ${temp_restore_dir} -name config)
337
-        cp -r ${temp_source_dir} /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/
351
+
352
+        if [ -d $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config ]; then
353
+            cp -r $temp_restore_dir/var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs
354
+        else
355
+            cp -r $temp_restore_dir/* /var/www/${NEXTCLOUD_DOMAIN_NAME}/htdocs/config/
356
+        fi
357
+
338 358
         if [ ! "$?" = "0" ]; then
339 359
             exit 573427
340 360
         fi

+ 20
- 4
src/freedombone-app-pelican View File

@@ -449,7 +449,11 @@ function restore_local_pelican {
449 449
             temp_restore_dir=/root/temppelican
450 450
             function_check restore_directory_from_usb
451 451
             restore_directory_from_usb $temp_restore_dir pelican
452
-            cp -r $temp_restore_dir/etc/blog/* /etc/blog/
452
+            if [ -d $temp_restore_dir/etc/blog ]; then
453
+                cp -r $temp_restore_dir/etc/blog/* /etc/blog/
454
+            else
455
+                cp -r $temp_restore_dir/* /etc/blog/
456
+            fi
453 457
             if [ ! "$?" = "0" ]; then
454 458
                 rm -rf $temp_restore_dir
455 459
                 function_check set_user_permissions
@@ -466,7 +470,11 @@ function restore_local_pelican {
466 470
             temp_restore_dir=/root/temppelican-site
467 471
             function_check restore_directory_from_usb
468 472
             restore_directory_from_usb $temp_restore_dir pelican-site
469
-            cp -r $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
473
+            if [ -d $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs ]; then
474
+                cp -r $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
475
+            else
476
+                cp -r $temp_restore_dir/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
477
+            fi
470 478
             if [ ! "$?" = "0" ]; then
471 479
                 rm -rf $temp_restore_dir
472 480
                 function_check set_user_permissions
@@ -495,7 +503,11 @@ function restore_remote_pelican {
495 503
             temp_restore_dir=/root/temppelican
496 504
             function_check restore_directory_from_friend
497 505
             restore_directory_from_friend $temp_restore_dir pelican
498
-            cp -r $temp_restore_dir/etc/blog/* /etc/blog/
506
+            if [ -d $temp_restore_dir/etc/blog ]; then
507
+                cp -r $temp_restore_dir/etc/blog/* /etc/blog/
508
+            else
509
+                cp -r $temp_restore_dir/* /etc/blog/
510
+            fi
499 511
             if [ ! "$?" = "0" ]; then
500 512
                 exit 782352
501 513
             fi
@@ -507,7 +519,11 @@ function restore_remote_pelican {
507 519
             temp_restore_dir=/root/temppelican-site
508 520
             function_check restore_directory_from_friend
509 521
             restore_directory_from_friend $temp_restore_dir pelican-site
510
-            cp -r $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
522
+            if [ -d $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs ]; then
523
+                cp -r $temp_restore_dir/var/www/$PELICAN_DOMAIN_NAME/htdocs/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
524
+            else
525
+                cp -r $temp_restore_dir/* /var/www/$PELICAN_DOMAIN_NAME/htdocs/
526
+            fi
511 527
             if [ ! "$?" = "0" ]; then
512 528
                 exit 76382562
513 529
             fi

+ 36
- 6
src/freedombone-app-postactiv View File

@@ -446,16 +446,31 @@ function restore_local_postactiv {
446 446
         function_check restore_directory_from_usb
447 447
         restore_directory_from_usb $temp_restore_dir postactivconfig
448 448
         if [ -d $temp_restore_dir ]; then
449
-            cp $temp_restore_dir$postactiv_dir/backup/config.php $postactiv_dir/
449
+            if [ -d $temp_restore_dir$postactiv_dir ]; then
450
+                cp $temp_restore_dir$postactiv_dir/backup/config.php $postactiv_dir/
451
+                cp -rp $temp_restore_dir$postactiv_dir/static $postactiv_dir/
452
+            else
453
+                cp $temp_restore_dir/backup/config.php $postactiv_dir/
454
+                if [ ! -d $postactiv_dir/static ]; then
455
+                    mkdir $postactiv_dir/static
456
+                fi
457
+                cp -rp $temp_restore_dir/static/* $postactiv_dir/static/
458
+            fi
450 459
             chown www-data:www-data $postactiv_dir/config.php
451
-            cp -rp $temp_restore_dir$postactiv_dir/static $postactiv_dir/
452 460
             chown -R www-data:www-data $postactiv_dir/static
453 461
             rm -rf $temp_restore_dir
454 462
         fi
455 463
 
456 464
         restore_directory_from_usb $temp_restore_dir postactivfile
457 465
         if [ -d $temp_restore_dir ]; then
458
-            cp -rp $temp_restore_dir$postactiv_dir/file $postactiv_dir/
466
+            if [ -d $temp_restore_dir$postactiv_dir/file ]; then
467
+                cp -rp $temp_restore_dir$postactiv_dir/file $postactiv_dir/
468
+            else
469
+                if [ ! -d $postactiv_dir/file ]; then
470
+                    mkdir $postactiv_dir/file
471
+                fi
472
+                cp -rp $temp_restore_dir/* $postactiv_dir/file/
473
+            fi
459 474
             chown -R www-data:www-data $postactiv_dir/file
460 475
             rm -rf $temp_restore_dir
461 476
         fi
@@ -527,16 +542,31 @@ function restore_remote_postactiv {
527 542
         function_check restore_directory_from_friend
528 543
         restore_directory_from_friend $temp_restore_dir postactivconfig
529 544
         if [ -d $temp_restore_dir ]; then
530
-            cp $temp_restore_dir$postactiv_dir/backup/config.php $postactiv_dir/
545
+            if [ -d $temp_restore_dir$postactiv_dir ]; then
546
+                cp $temp_restore_dir$postactiv_dir/backup/config.php $postactiv_dir/
547
+                cp -rp $temp_restore_dir$postactiv_dir/static $postactiv_dir/
548
+            else
549
+                cp $temp_restore_dir/config.php $postactiv_dir/
550
+                if [ ! -d $postactiv_dir/static ]; then
551
+                    mkdir $postactiv_dir/static
552
+                fi
553
+                cp -rp $temp_restore_dir/static/* $postactiv_dir/static/
554
+            fi
531 555
             chown www-data:www-data $postactiv_dir/config.php
532
-            cp -rp $temp_restore_dir$postactiv_dir/static $postactiv_dir/
533 556
             chown -R www-data:www-data $postactiv_dir/static
534 557
             rm -rf $temp_restore_dir
535 558
         fi
536 559
 
537 560
         restore_directory_from_friend $temp_restore_dir postactivfile
538 561
         if [ -d $temp_restore_dir ]; then
539
-            cp -rp $temp_restore_dir$postactiv_dir/file $postactiv_dir/
562
+            if [ -d $temp_restore_dir$postactiv_dir/file ]; then
563
+                cp -rp $temp_restore_dir$postactiv_dir/file $postactiv_dir/
564
+            else
565
+                if [ ! -d $postactiv_dir/file ]; then
566
+                    mkdir $postactiv_dir/file
567
+                fi
568
+                cp -rp $temp_restore_dir/* $postactiv_dir/file/
569
+            fi
540 570
             chown -R www-data:www-data $postactiv_dir/file
541 571
             rm -rf $temp_restore_dir
542 572
         fi

+ 20
- 4
src/freedombone-app-radicale View File

@@ -214,7 +214,11 @@ function restore_local_radicale {
214 214
         temp_restore_dir=/root/tempradicale
215 215
         function_check restore_directory_from_usb
216 216
         restore_directory_from_usb $temp_restore_dir radicale
217
-        cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
217
+        if [ -d $temp_restore_dir${RADICALE_DIRECTORY} ]; then
218
+            cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
219
+        else
220
+            cp -r $temp_restore_dir/* ${RADICALE_DIRECTORY}/
221
+        fi
218 222
         if [ ! "$?" = "0" ]; then
219 223
             function_check backup_unmount_drive
220 224
             backup_unmount_drive
@@ -224,7 +228,11 @@ function restore_local_radicale {
224 228
 
225 229
         temp_restore_dir=/root/tempradicalewww
226 230
         restore_directory_from_usb $temp_restore_dir radicalewww
227
-        cp -r $temp_restore_dir/var/www/radicale/* /var/www/radicale
231
+        if [ -d $temp_restore_dir/var/www/radicale ]; then
232
+            cp -r $temp_restore_dir/var/www/radicale/* /var/www/radicale
233
+        else
234
+            cp -r $temp_restore_dir/* /var/www/radicale/*
235
+        fi
228 236
         if [ ! "$?" = "0" ]; then
229 237
             function_check backup_unmount_drive
230 238
             backup_unmount_drive
@@ -251,7 +259,11 @@ function restore_remote_radicale {
251 259
         temp_restore_dir=/root/tempradicale
252 260
         function_check restore_directory_from_friend
253 261
         restore_directory_from_friend $temp_restore_dir radicale
254
-        cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
262
+        if [ -d $temp_restore_dir${RADICALE_DIRECTORY} ]; then
263
+            cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
264
+        else
265
+            cp -r $temp_restore_dir/* ${RADICALE_DIRECTORY}/
266
+        fi
255 267
         if [ ! "$?" = "0" ]; then
256 268
             exit 236746
257 269
         fi
@@ -259,7 +271,11 @@ function restore_remote_radicale {
259 271
 
260 272
         temp_restore_dir=/root/tempradicalewww
261 273
         restore_directory_from_friend $temp_restore_dir radicalewww
262
-        cp -r $temp_restore_dir/var/www/radicale/* /var/www/radicale
274
+        if [ -d $temp_restore_dir/var/www/radicale ]; then
275
+            cp -r $temp_restore_dir/var/www/radicale/* /var/www/radicale
276
+        else
277
+            cp -r $temp_restore_dir/* /var/www/radicale
278
+        fi
263 279
         if [ ! "$?" = "0" ]; then
264 280
             exit 3674284
265 281
         fi

+ 14
- 5
src/freedombone-app-rss View File

@@ -171,9 +171,13 @@ function restore_local_rss {
171 171
     restore_database ttrss ${RSS_READER_DOMAIN_NAME}
172 172
 
173 173
     if [ -d /etc/share/tt-rss ]; then
174
-        if [ -d /root/tempttrss/etc/share/tt-rss ]; then
175
-            rm -rf /etc/share/tt-rss
176
-            mv /root/tempttrss/etc/share/tt-rss /etc/share/
174
+        if [ -d $temp_restore_dir/etc/share/tt-rss ]; then
175
+            if [ -d $temp_restore_dir/etc/share/tt-rss ]; then
176
+                rm -rf /etc/share/tt-rss
177
+                mv $temp_restore_dir/etc/share/tt-rss /etc/share/
178
+            else
179
+                cp -r $temp_restore_dir/* /etc/share/tt-rss/
180
+            fi
177 181
             if [ ! "$?" = "0" ]; then
178 182
                 function_check set_user_permissions
179 183
                 set_user_permissions
@@ -230,6 +234,7 @@ function backup_remote_rss {
230 234
 }
231 235
 
232 236
 function restore_remote_rss {
237
+    temp_restore_dir=/root/tempttrss
233 238
     if grep -q "rss reader domain" $COMPLETION_FILE; then
234 239
         echo $"Restoring ttrss"
235 240
         function_check restore_database_from_friend
@@ -240,8 +245,12 @@ function restore_remote_rss {
240 245
         restore_database_from_friend ttrss ${RSS_READER_DOMAIN_NAME}
241 246
 
242 247
         if [ -d /etc/share/tt-rss ]; then
243
-            rm -rf /etc/share/tt-rss
244
-            mv /root/tempttrss/etc/share/tt-rss /etc/share/
248
+            if [ -d $temp_restore_dir/etc/share/tt-rss ]; then
249
+                rm -rf /etc/share/tt-rss
250
+                mv $temp_restore_dir/etc/share/tt-rss /etc/share/
251
+            else
252
+                cp -r $temp_restore_dir/* /etc/share/tt-rss/
253
+            fi
245 254
             if [ ! "$?" = "0" ]; then
246 255
                 exit 6391
247 256
             fi

+ 12
- 2
src/freedombone-app-scuttlebot View File

@@ -144,8 +144,13 @@ function restore_local_scuttlebot {
144 144
         temp_restore_dir=/root/tempscuttlebot
145 145
         function_check restore_directory_from_usb
146 146
         restore_directory_from_usb $temp_restore_dir scuttlebot
147
-        cp -r $temp_restore_dir/etc/scuttlebot/.ssb /etc/scuttlebot/
147
+        if [ -d $temp_restore_dir/etc/scuttlebot/.ssb ]; then
148
+            cp -r $temp_restore_dir/etc/scuttlebot/.ssb /etc/scuttlebot/
149
+        else
150
+            cp -r $temp_restore_dir/* /etc/scuttlebot/.ssb/*
151
+        fi
148 152
         systemctl start scuttlebot
153
+        rm -rf $temp_restore_dir
149 154
     fi
150 155
 }
151 156
 
@@ -164,8 +169,13 @@ function restore_remote_scuttlebot {
164 169
         temp_restore_dir=/root/tempscuttlebot
165 170
         function_check restore_directory_from_friend
166 171
         restore_directory_from_friend $temp_restore_dir scuttlebot
167
-        cp -r $temp_restore_dir/etc/scuttlebot/.ssb /etc/scuttlebot/
172
+        if [ -d $temp_restore_dir/etc/scuttlebot/.ssb ]; then
173
+            cp -r $temp_restore_dir/etc/scuttlebot/.ssb /etc/scuttlebot/
174
+        else
175
+            cp -r $temp_restore_dir/* /etc/scuttlebot/.ssb/*
176
+        fi
168 177
         systemctl start scuttlebot
178
+        rm -rf $temp_restore_dir
169 179
     fi
170 180
 }
171 181
 

+ 22
- 2
src/freedombone-app-sip View File

@@ -145,7 +145,11 @@ function restore_local_sip {
145 145
         temp_restore_dir=/root/tempsip
146 146
         function_check restore_directory_from_usb
147 147
         restore_directory_from_usb $temp_restore_dir sip
148
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
148
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
149
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
150
+        else
151
+            cp -f $temp_restore_dir/sipwitch.conf /etc/sipwitch.conf
152
+        fi
149 153
         if [ ! "$?" = "0" ]; then
150 154
             rm -rf $temp_restore_dir
151 155
             function_check set_user_permissions
@@ -173,7 +177,23 @@ function backup_remote_sip {
173 177
 }
174 178
 
175 179
 function restore_remote_sip {
176
-    echo -n ''
180
+    temp_restore_dir=/root/tempsip
181
+    function_check restore_directory_from_friend
182
+    restore_directory_from_friend $temp_restore_dir sip
183
+    if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
184
+        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
185
+    else
186
+        cp -f $temp_restore_dir/sipwitch.conf /etc/sipwitch.conf
187
+    fi
188
+    if [ ! "$?" = "0" ]; then
189
+        rm -rf $temp_restore_dir
190
+        function_check set_user_permissions
191
+        set_user_permissions
192
+        backup_unmount_drive
193
+        exit 3679
194
+    fi
195
+    rm -rf $temp_restore_dir
196
+    systemctl restart sipwitch
177 197
 }
178 198
 
179 199
 function remove_sip {

+ 34
- 6
src/freedombone-app-syncthing View File

@@ -286,7 +286,13 @@ function restore_local_syncthing {
286 286
         echo $"Restoring syncthing configuration"
287 287
         function_check restore_directory_from_usb
288 288
         restore_directory_from_usb ${temp_restore_dir}config syncthingconfig
289
-        cp -r ${temp_restore_dir}config/* /
289
+        #cp -r ${temp_restore_dir}config/* /
290
+
291
+        if [ ! -d /root/.config/syncthing ]; then
292
+            mkdir -p /root/.config/syncthing
293
+        fi
294
+        cp -r ${temp_restore_dir}config/* /root/.config/syncthing/
295
+
290 296
         if [ ! "$?" = "0" ]; then
291 297
             set_user_permissions
292 298
             backup_unmount_drive
@@ -300,7 +306,13 @@ function restore_local_syncthing {
300 306
     if [ -d $USB_MOUNT/backup/syncthingshared ]; then
301 307
         echo $"Restoring syncthing shared files"
302 308
         restore_directory_from_usb ${temp_restore_dir}shared syncthingshared
303
-        cp -r ${temp_restore_dir}shared/* /
309
+        #cp -r ${temp_restore_dir}shared/* /
310
+
311
+        if [ ! -d /var/lib/syncthing/SyncShared ]; then
312
+            mkdir -p /var/lib/syncthing/SyncShared
313
+        fi
314
+        cp -r ${temp_restore_dir}shared/* /var/lib/syncthing/SyncShared/
315
+
304 316
         if [ ! "$?" = "0" ]; then
305 317
             set_user_permissions
306 318
             backup_unmount_drive
@@ -320,7 +332,11 @@ function restore_local_syncthing {
320 332
                 fi
321 333
                 echo $"Restoring syncthing files for $USERNAME"
322 334
                 restore_directory_from_usb ${temp_restore_dir} syncthing/$USERNAME
323
-                cp -r ${temp_restore_dir}/home/$USERNAME/Sync /home/$USERNAME/
335
+                if [ -d ${temp_restore_dir}/home/$USERNAME/Sync ]; then
336
+                    cp -r ${temp_restore_dir}/home/$USERNAME/Sync /home/$USERNAME/
337
+                else
338
+                    cp -r ${temp_restore_dir}/* /home/$USERNAME/Sync/
339
+                fi
324 340
                 if [ ! "$?" = "0" ]; then
325 341
                     rm -rf ${temp_restore_dir}
326 342
                     set_user_permissions
@@ -399,7 +415,11 @@ function restore_remote_syncthing {
399 415
         temp_restore_dir=/root/tempsyncthingconfig
400 416
         function_check restore_directory_from_friend
401 417
         restore_directory_from_friend $temp_restore_dir syncthingconfig
402
-        cp -r $temp_restore_dir/* /
418
+        #cp -r $temp_restore_dir/* /
419
+        if [ ! -d /root/.config/syncthing ]; then
420
+            mkdir -p /root/.config/syncthing
421
+        fi
422
+        cp -r ${temp_restore_dir}config/* /root/.config/syncthing/
403 423
         if [ ! "$?" = "0" ]; then
404 424
             systemctl start syncthing
405 425
             systemctl start cron
@@ -413,7 +433,11 @@ function restore_remote_syncthing {
413 433
         temp_restore_dir=/root/tempsyncthingshared
414 434
         function_check restore_directory_from_friend
415 435
         restore_directory_from_friend $temp_restore_dir syncthingshared
416
-        cp -r $temp_restore_dir/* /
436
+        #cp -r $temp_restore_dir/* /
437
+        if [ ! -d /var/lib/syncthing/SyncShared ]; then
438
+            mkdir -p /var/lib/syncthing/SyncShared
439
+        fi
440
+        cp -r ${temp_restore_dir}shared/* /var/lib/syncthing/SyncShared/
417 441
         if [ ! "$?" = "0" ]; then
418 442
             systemctl start syncthing
419 443
             systemctl start cron
@@ -433,7 +457,11 @@ function restore_remote_syncthing {
433 457
                 temp_restore_dir=/root/tempsyncthing
434 458
                 function_check restore_directory_from_friend
435 459
                 restore_directory_from_friend $temp_restore_dir syncthing/$USERNAME
436
-                cp -r $temp_restore_dir/home/$USERNAME/Sync /home/$USERNAME/
460
+                if [ -d $temp_restore_dir/home/$USERNAME/Sync ]; then
461
+                    cp -r $temp_restore_dir/home/$USERNAME/Sync /home/$USERNAME/
462
+                else
463
+                    cp -r $temp_restore_dir/* /home/$USERNAME/Sync/
464
+                fi
437 465
                 if [ ! "$?" = "0" ]; then
438 466
                     rm -rf $temp_restore_dir
439 467
                     systemctl start syncthing

+ 26
- 8
src/freedombone-app-tahoelafs View File

@@ -298,13 +298,22 @@ function restore_local_tahoelafs {
298 298
     systemctl stop tahoelafs-client
299 299
     temp_restore_dir=/root/temptahoelafs
300 300
     restore_directory_from_usb $temp_restore_dir tahoelafs
301
-    mv $TAHOE_DIR ${TAHOE_DIR}-old
302
-    cp -r $temp_restore_dir$TAHOE_DIR $TAHOE_DIR
301
+    if [ -d $temp_restore_dir$TAHOE_DIR ]; then
302
+        mv $TAHOE_DIR ${TAHOE_DIR}-old
303
+        cp -r $temp_restore_dir$TAHOE_DIR $TAHOE_DIR
304
+    else
305
+        cp -r $temp_restore_dir/* $TAHOE_DIR/
306
+    fi
303 307
     if [ ! "$?" = "0" ]; then
304
-        mv ${TAHOE_DIR}-old $TAHOE_DIR
308
+        if [ -d ${TAHOE_DIR}-old ]; then
309
+            mv ${TAHOE_DIR}-old $TAHOE_DIR
310
+        fi
305 311
         exit 246833
306 312
     fi
307
-    rm -rf ${TAHOE_DIR}-old
313
+    if [ -d ${TAHOE_DIR}-old ]; then
314
+        rm -rf ${TAHOE_DIR}-old
315
+    fi
316
+    rm -rf $temp_restore_dir
308 317
     chown -R tahoelafs:debian-tor $TAHOE_DIR
309 318
     systemctl start tahoelafs-client
310 319
     systemctl start tahoelafs-storage
@@ -331,13 +340,22 @@ function restore_remote_tahoelafs {
331 340
     systemctl stop tahoelafs-client
332 341
     temp_restore_dir=/root/temptahoelafs
333 342
     restore_directory_from_friend $temp_restore_dir tahoelafs
334
-    mv $TAHOE_DIR ${TAHOE_DIR}-old
335
-    cp -r $temp_restore_dir$TAHOE_DIR $TAHOE_DIR
343
+    if [ -d $temp_restore_dir$TAHOE_DIR ]; then
344
+        mv $TAHOE_DIR ${TAHOE_DIR}-old
345
+        cp -r $temp_restore_dir$TAHOE_DIR $TAHOE_DIR
346
+    else
347
+        cp -r $temp_restore_dir/* $TAHOE_DIR/
348
+    fi
336 349
     if [ ! "$?" = "0" ]; then
337
-        mv ${TAHOE_DIR}old $TAHOE_DIR
350
+        if [ -d ${$TAHOE_DIR}-old ]; then
351
+            mv ${TAHOE_DIR}-old $TAHOE_DIR
352
+        fi
338 353
         exit 623925
339 354
     fi
340
-    rm -rf ${$TAHOE_DIR}-old
355
+    if [ -d ${$TAHOE_DIR}-old ]; then
356
+        rm -rf ${$TAHOE_DIR}-old
357
+    fi
358
+    rm -rf $temp_restore_dir
341 359
     chown -R tahoelafs:debian-tor $TAHOE_DIR
342 360
     systemctl start tahoelafs-client
343 361
     systemctl start tahoelafs-storage

+ 4
- 2
src/freedombone-app-tox View File

@@ -213,7 +213,8 @@ function restore_local_tox {
213 213
     if [ -d $USB_MOUNT/backup/tox ]; then
214 214
         echo $"Restoring Tox node settings"
215 215
         function_check restore_directory_from_usb
216
-        restore_directory_from_usb / tox
216
+        #restore_directory_from_usb / tox
217
+        restore_directory_from_usb /var/lib/tox-bootstrapd tox
217 218
         if [ ! "$?" = "0" ]; then
218 219
             function_check set_user_permissions
219 220
             set_user_permissions
@@ -250,7 +251,8 @@ function restore_remote_tox {
250 251
     if [ -d $SERVER_DIRECTORY/backup/tox ]; then
251 252
         echo $"Restoring Tox node settings"
252 253
         function_check restore_directory_from_friend
253
-        restore_directory_from_friend / tox
254
+        #restore_directory_from_friend / tox
255
+        restore_directory_from_friend /var/lib/tox-bootstrapd tox
254 256
         if [ ! "$?" = "0" ]; then
255 257
             exit 93653
256 258
         fi

+ 26
- 37
src/freedombone-app-turtl View File

@@ -249,18 +249,14 @@ function restore_local_turtl {
249 249
     if [ $TURTL_DOMAIN_NAME ]; then
250 250
         temp_restore_dir=/root/tempturtl
251 251
         restore_directory_from_usb $temp_restore_dir turtl
252
-        if [ -d $TURTL_BASE_DIR ]; then
253
-            if [ -d /etc/turtl_previous ]; then
254
-                rm -rf /etc/turtl_previous
255
-            fi
256
-            mv $TURTL_BASE_DIR /etc/turtl_previous
252
+
253
+        if [ -d ${temp_restore_dir}/etc/turtl ]; then
254
+            cp -r ${temp_restore_dir}/etc/turtl/* /etc/turtl/
255
+        else
256
+            cp -r ${temp_restore_dir}/* /etc/turtl/
257 257
         fi
258
-        temp_source_dir=$(find ${temp_restore_dir} -name turtl)
259
-        cp -r ${temp_source_dir} /etc/
258
+
260 259
         if [ ! "$?" = "0" ]; then
261
-            if [ -d /etc/turtl_previous ]; then
262
-                mv /etc/turtl_previous $TURTL_BASE_DIR
263
-            fi
264 260
             set_user_permissions
265 261
             backup_unmount_drive
266 262
             exit 36723
@@ -270,18 +266,14 @@ function restore_local_turtl {
270 266
 
271 267
         temp_restore_dir=/root/temprethinkdb
272 268
         restore_directory_from_usb $temp_restore_dir rethinkdb
273
-        if [ -d /var/lib/rethinkdb ]; then
274
-            if [ -d /var/lib/previous_rethinkdb ]; then
275
-                rm -rf /var/lib/previous_rethinkdb
276
-            fi
277
-            mv /var/lib/rethinkdb /var/lib/previous_rethinkdb
269
+
270
+        if [ -d ${temp_restore_dir}/var/lib/rethinkdb ]; then
271
+            cp -r ${temp_restore_dir}/var/lib/rethinkdb/* /var/lib/rethinkdb/
272
+        else
273
+            cp -r ${temp_restore_dir}/* /var/lib/rethinkdb/
278 274
         fi
279
-        temp_source_dir=$(find ${temp_restore_dir} -name rethinkdb)
280
-        cp -r ${temp_source_dir} /var/lib/
275
+
281 276
         if [ ! "$?" = "0" ]; then
282
-            if [ -d /var/lib/previous_rethinkdb ]; then
283
-                mv /var/lib/previous_rethinkdb /var/lib/rethinkdb
284
-            fi
285 277
             set_user_permissions
286 278
             backup_unmount_drive
287 279
             exit 378324
@@ -319,18 +311,18 @@ function restore_remote_turtl {
319 311
         mkdir $temp_restore_dir
320 312
         function_check restore_directory_from_friend
321 313
         restore_directory_from_friend $temp_restore_dir turtl
322
-        if [ -d $TURTL_BASE_DIR ]; then
323
-            if [ -d /etc/turtl_previous ]; then
324
-                rm -rf /etc/turtl_previous
325
-            fi
326
-            mv $TURTL_BASE_DIR /etc/turtl_previous
314
+
315
+        if [ -d ${temp_restore_dir}/etc/turtl ]; then
316
+            cp -r ${temp_restore_dir}/etc/turtl/* /etc/turtl/
317
+        else
318
+            cp -r ${temp_restore_dir}/* /etc/turtl/
327 319
         fi
328
-        temp_source_dir=$(find ${temp_restore_dir} -name turtl)
329
-        cp -r ${temp_source_dir} /etc/
320
+
330 321
         if [ ! "$?" = "0" ]; then
331 322
             if [ -d /etc/turtl_previous ]; then
332 323
                 mv /etc/turtl_previous $TURTL_BASE_DIR
333 324
             fi
325
+            set_user_permissions
334 326
             exit 37823
335 327
         fi
336 328
         rm -rf ${temp_restore_dir}
@@ -339,18 +331,15 @@ function restore_remote_turtl {
339 331
         mkdir $temp_restore_dir
340 332
         function_check restore_directory_from_friend
341 333
         restore_directory_from_friend $temp_restore_dir rethinkdb
342
-        if [ -d /var/lib/rethinkdb ]; then
343
-            if [ -d /var/lib/previous_rethinkdb ]; then
344
-                rm -rf /var/lib/previous_rethinkdb
345
-            fi
346
-            mv /var/lib/rethinkdb /var/lib/previous_rethinkdb
334
+
335
+        if [ -d ${temp_restore_dir}/var/lib/rethinkdb ]; then
336
+            cp -r ${temp_restore_dir}/var/lib/rethinkdb/* /var/lib/rethinkdb/
337
+        else
338
+            cp -r ${temp_restore_dir}/* /var/lib/rethinkdb/
347 339
         fi
348
-        temp_source_dir=$(find ${temp_restore_dir} -name rethinkdb)
349
-        cp -r ${temp_source_dir} /var/lib/
340
+
350 341
         if [ ! "$?" = "0" ]; then
351
-            if [ -d /var/lib/previous_rethinkdb ]; then
352
-                mv /var/lib/previous_rethinkdb /var/lib/rethinkdb
353
-            fi
342
+            set_user_permissions
354 343
             exit 26783
355 344
         fi
356 345
         rm -rf ${temp_restore_dir}

+ 16
- 2
src/freedombone-app-vim View File

@@ -100,7 +100,14 @@ function restore_local_vim {
100 100
                 echo $"Restoring Vim config for $USERNAME"
101 101
                 function_check restore_directory_from_usb
102 102
                 restore_directory_from_usb $temp_restore_dir vim/$USERNAME
103
-                cp -r $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR /home/$USERNAME/
103
+                if [ -d $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR ]; then
104
+                    cp -r $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR /home/$USERNAME/
105
+                else
106
+                    if [ ! -d /home/$USERNAME/$VIM_TEMP_DIR ]; then
107
+                        mkdir /home/$USERNAME/$VIM_TEMP_DIR
108
+                    fi
109
+                    cp -r $temp_restore_dir/* /home/$USERNAME/$VIM_TEMP_DIR/
110
+                fi
104 111
                 if [ ! "$?" = "0" ]; then
105 112
                     rm -rf $temp_restore_dir
106 113
                     function_check set_user_permissions
@@ -168,7 +175,14 @@ function restore_remote_vim {
168 175
                 echo $"Restoring Vim config for $USERNAME"
169 176
                 function_check restore_directory_from_friend
170 177
                 restore_directory_from_friend $temp_restore_dir vim/$USERNAME
171
-                cp -r $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR /home/$USERNAME/
178
+                if [ -d $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR ]; then
179
+                    cp -r $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR /home/$USERNAME/
180
+                else
181
+                    if [ ! -d /home/$USERNAME/$VIM_TEMP_DIR ]; then
182
+                        mkdir /home/$USERNAME/$VIM_TEMP_DIR
183
+                    fi
184
+                    cp -r $temp_restore_dir/* /home/$USERNAME/$VIM_TEMP_DIR/
185
+                fi
172 186
                 if [ ! "$?" = "0" ]; then
173 187
                     rm -rf $temp_restore_dir
174 188
                     function_check set_user_permissions

+ 12
- 4
src/freedombone-app-wekan View File

@@ -134,8 +134,12 @@ function restore_local_wekan {
134 134
         temp_restore_dir=/root/tempwekan
135 135
         function_check restore_directory_from_usb
136 136
         restore_directory_from_usb $temp_restore_dir wekan
137
-        cp -r $temp_restore_dir$WEKAN_DIR/data/* $WEKAN_DIR/data/
138
-
137
+        if [ -d $temp_restore_dir$WEKAN_DIR/data ]; then
138
+            cp -r $temp_restore_dir$WEKAN_DIR/data/* $WEKAN_DIR/data/
139
+        else
140
+            cp -r $temp_restore_dir/* $WEKAN_DIR/data/
141
+        fi
142
+        rm -rf $temp_restore_dir
139 143
         systemctl start wekan
140 144
     fi
141 145
 }
@@ -177,8 +181,12 @@ function restore_remote_wekan {
177 181
         temp_restore_dir=/root/tempwekan
178 182
         function_check restore_directory_from_usb
179 183
         restore_directory_from_friend $temp_restore_dir wekan
180
-        cp -r $temp_restore_dir$WEKAN_DIR/data/* $WEKAN_DIR/data/
181
-
184
+        if [ -d $temp_restore_dir$WEKAN_DIR/data ]; then
185
+            cp -r $temp_restore_dir$WEKAN_DIR/data/* $WEKAN_DIR/data/
186
+        else
187
+            cp -r $temp_restore_dir/* $WEKAN_DIR/data/
188
+        fi
189
+        rm -rf $temp_restore_dir
182 190
         systemctl start wekan
183 191
     fi
184 192
 }

+ 10
- 2
src/freedombone-app-xmpp View File

@@ -460,7 +460,11 @@ function restore_local_xmpp {
460 460
         temp_restore_dir=/root/tempxmpp
461 461
         function_check restore_directory_from_usb
462 462
         restore_directory_from_usb $temp_restore_dir xmpp
463
-        cp -r $temp_restore_dir/var/lib/prosody/* /var/lib/prosody
463
+        if [ -d $temp_restore_dir/var/lib/prosody ]; then
464
+            cp -r $temp_restore_dir/var/lib/prosody/* /var/lib/prosody
465
+        else
466
+            cp -r $temp_restore_dir/* /var/lib/prosody/
467
+        fi
464 468
         if [ ! "$?" = "0" ]; then
465 469
             function_check set_user_permissions
466 470
             set_user_permissions
@@ -489,7 +493,11 @@ function restore_remote_xmpp {
489 493
         temp_restore_dir=/root/tempxmpp
490 494
         function_check restore_directory_from_friend
491 495
         restore_directory_from_friend $temp_restore_dir xmpp
492
-        cp -r $temp_restore_dir/var/lib/prosody/* /var/lib/prosody
496
+        if [ -d $temp_restore_dir/var/lib/prosody ]; then
497
+            cp -r $temp_restore_dir/var/lib/prosody/* /var/lib/prosody
498
+        else
499
+            cp -r $temp_restore_dir/* /var/lib/prosody/
500
+        fi
493 501
         if [ ! "$?" = "0" ]; then
494 502
             exit 725
495 503
         fi

+ 132
- 36
src/freedombone-restore-local View File

@@ -123,8 +123,10 @@ function restore_blocklist {
123 123
         temp_restore_dir=/root/tempblocklist
124 124
         restore_directory_from_usb $temp_restore_dir blocklist
125 125
 
126
-        if [ -f $temp_restore_dir/root/tempbackupblocklist/${PROJECT_NAME}-firewall-domains.cfg ]; then
126
+        if [ -d $temp_restore_dir/root/tempbackupblocklist ]; then
127 127
             cp -f $temp_restore_dir/root/tempbackupblocklist/${PROJECT_NAME}-firewall-domains.cfg /root/${PROJECT_NAME}-firewall-domains.cfg
128
+        else
129
+            cp -f $temp_restore_dir/${PROJECT_NAME}-firewall-domains.cfg /root/${PROJECT_NAME}-firewall-domains.cfg
128 130
         fi
129 131
 
130 132
         rm -rf $temp_restore_dir
@@ -146,13 +148,25 @@ function restore_configfiles {
146 148
         temp_restore_dir=/root/tempconfigfiles
147 149
         restore_directory_from_usb $temp_restore_dir configfiles
148 150
 
149
-        if [ -f $temp_restore_dir/root/.nostore ]; then
150
-            if [ ! -f /root/.nostore ]; then
151
-                touch /root/.nostore
151
+        if [ -d $temp_restore_dir/root ]; then
152
+            if [ -f $temp_restore_dir/root/.nostore ]; then
153
+                if [ ! -f /root/.nostore ]; then
154
+                    touch /root/.nostore
155
+                fi
156
+            else
157
+                if [ -f /root/.nostore ]; then
158
+                    rm /root/.nostore
159
+                fi
152 160
             fi
153 161
         else
154
-            if [ -f /root/.nostore ]; then
155
-                rm /root/.nostore
162
+            if [ -f $temp_restore_dir/.nostore ]; then
163
+                if [ ! -f /root/.nostore ]; then
164
+                    touch /root/.nostore
165
+                fi
166
+            else
167
+                if [ -f /root/.nostore ]; then
168
+                    rm /root/.nostore
169
+                fi
156 170
             fi
157 171
         fi
158 172
 
@@ -196,8 +210,14 @@ function restore_configfiles {
196 210
         fi
197 211
 
198 212
         # restore nginx password hashes
199
-        if [ -f $temp_restore_dir/root/htpasswd ]; then
200
-            cp -f $temp_restore_dir/root/htpasswd /etc/nginx/.htpasswd
213
+        if [ -d $temp_restore_dir/root ]; then
214
+            if [ -f $temp_restore_dir/root/htpasswd ]; then
215
+                cp -f $temp_restore_dir/root/htpasswd /etc/nginx/.htpasswd
216
+            fi
217
+        else
218
+            if [ -f $temp_restore_dir/htpasswd ]; then
219
+                cp -f $temp_restore_dir/htpasswd /etc/nginx/.htpasswd
220
+            fi
201 221
         fi
202 222
 
203 223
         rm -rf $temp_restore_dir
@@ -238,11 +258,19 @@ function restore_mariadb {
238 258
         db_pass=$(cat /root/.mariadboriginal)
239 259
         if [ ${#db_pass} -gt 0 ]; then
240 260
             echo $"Restore the MariaDB user table"
241
-            mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
261
+            if [ -d ${temp_restore_dir}${temp_restore_dir} ]; then
262
+                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
263
+            else
264
+                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}/mysql.sql)
265
+            fi
242 266
             if [ ! "$?" = "0" ]; then
243 267
                 echo $"Try again using the password obtained from backup"
244 268
                 db_pass=$(${PROJECT_NAME}-pass -u root -a mariadb)
245
-                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
269
+                if [ -d ${temp_restore_dir}${temp_restore_dir} ]; then
270
+                    mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
271
+                else
272
+                    mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}/mysql.sql)
273
+                fi
246 274
             fi
247 275
             if [ ! "$?" = "0" ]; then
248 276
                 echo "$mysqlsuccess"
@@ -269,7 +297,8 @@ function restore_letsencrypt {
269 297
     fi
270 298
     if [ -d $USB_MOUNT/backup/letsencrypt ]; then
271 299
         echo $"Restoring Lets Encrypt settings"
272
-        restore_directory_from_usb / letsencrypt
300
+        #restore_directory_from_usb / letsencrypt
301
+        restore_directory_from_usb /etc/letsencrypt letsencrypt
273 302
         chgrp -R ssl-cert /etc/letsencrypt
274 303
         chmod -R g=rX /etc/letsencrypt
275 304
     fi
@@ -284,7 +313,8 @@ function restore_passwordstore {
284 313
     if [ -d $USB_MOUNT/backup/passwordstore ]; then
285 314
         store_original_mariadb_password
286 315
         echo $"Restoring password store"
287
-        restore_directory_from_usb / passwordstore
316
+        #restore_directory_from_usb / passwordstore
317
+        restore_directory_from_usb /root/.passwords passwordstore
288 318
     fi
289 319
 }
290 320
 
@@ -296,7 +326,8 @@ function restore_tor {
296 326
     fi
297 327
     if [ -d $USB_MOUNT/backup/tor ]; then
298 328
         echo $"Restoring Tor settings"
299
-        restore_directory_from_usb / tor
329
+        #restore_directory_from_usb / tor
330
+        restore_directory_from_usb /var/lib/tor tor
300 331
     fi
301 332
 }
302 333
 
@@ -316,15 +347,28 @@ function restore_mutt_settings {
316 347
                 echo $"Restoring Mutt settings for $USERNAME"
317 348
                 temp_restore_dir=/root/tempmutt
318 349
                 restore_directory_from_usb $temp_restore_dir mutt/$USERNAME
319
-                if [ -f $temp_restore_dir/home/$USERNAME/tempbackup/.muttrc ]; then
320
-                    cp -f $temp_restore_dir/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
321
-                    sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
322
-                    sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
323
-                fi
324
-                if [ -f $temp_restore_dir/home/$USERNAME/tempbackup/Muttrc ]; then
325
-                    cp -f $temp_restore_dir/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
326
-                    sed -i '/set sidebar_delim/d' /etc/Muttrc
327
-                    sed -i '/set sidebar_sort/d' /etc/Muttrc
350
+                if [ -d $temp_restore_dir/home/$USERNAME/tempbackup ]; then
351
+                    if [ -f $temp_restore_dir/home/$USERNAME/tempbackup/.muttrc ]; then
352
+                        cp -f $temp_restore_dir/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
353
+                        sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
354
+                        sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
355
+                    fi
356
+                    if [ -f $temp_restore_dir/home/$USERNAME/tempbackup/Muttrc ]; then
357
+                        cp -f $temp_restore_dir/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
358
+                        sed -i '/set sidebar_delim/d' /etc/Muttrc
359
+                        sed -i '/set sidebar_sort/d' /etc/Muttrc
360
+                    fi
361
+                else
362
+                    if [ -f $temp_restore_dir/.muttrc ]; then
363
+                        cp -f $temp_restore_dir/.muttrc /home/$USERNAME/.muttrc
364
+                        sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
365
+                        sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
366
+                    fi
367
+                    if [ -f $temp_restore_dir/Muttrc ]; then
368
+                        cp -f $temp_restore_dir/Muttrc /etc/Muttrc
369
+                        sed -i '/set sidebar_delim/d' /etc/Muttrc
370
+                        sed -i '/set sidebar_sort/d' /etc/Muttrc
371
+                    fi
328 372
                 fi
329 373
                 if [ ! "$?" = "0" ]; then
330 374
                     rm -rf $temp_restore_dir
@@ -353,7 +397,11 @@ function restore_gpg {
353 397
                 echo $"Restoring gnupg settings for $USERNAME"
354 398
                 temp_restore_dir=/root/tempgnupg
355 399
                 restore_directory_from_usb $temp_restore_dir gnupg/$USERNAME
356
-                cp -r $temp_restore_dir/home/$USERNAME/.gnupg /home/$USERNAME/
400
+                if [ -d $temp_restore_dir/home/$USERNAME/.gnupg ]; then
401
+                    cp -r $temp_restore_dir/home/$USERNAME/.gnupg /home/$USERNAME/
402
+                else
403
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.gnupg/
404
+                fi
357 405
                 if [ ! "$?" = "0" ]; then
358 406
                     rm -rf $temp_restore_dir
359 407
                     set_user_permissions
@@ -393,7 +441,11 @@ function restore_procmail {
393 441
                 temp_restore_dir=/root/tempprocmail
394 442
                 restore_directory_from_usb $temp_restore_dir procmail/$USERNAME
395 443
                 if [ -d $temp_restore_dir ]; then
396
-                    cp -f $temp_restore_dir/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
444
+                    if [ -d $temp_restore_dir/home/$USERNAME/tempbackup ]; then
445
+                        cp -f $temp_restore_dir/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
446
+                    else
447
+                        cp -f $temp_restore_dir/.procmailrc /home/$USERNAME/.procmailrc
448
+                    fi
397 449
                     if [ ! "$?" = "0" ]; then
398 450
                         rm -rf $temp_restore_dir
399 451
                         set_user_permissions
@@ -424,7 +476,11 @@ function restore_spamassassin {
424 476
                     echo $"Restoring spamassassin settings for $USERNAME"
425 477
                     temp_restore_dir=/root/tempspamassassin
426 478
                     restore_directory_from_usb $temp_restore_dir spamassassin/$USERNAME
427
-                    cp -rf $temp_restore_dir/home/$USERNAME/.spamassassin /home/$USERNAME/
479
+                    if [ -d $temp_restore_dir/home/$USERNAME ]; then
480
+                        cp -rf $temp_restore_dir/home/$USERNAME/.spamassassin /home/$USERNAME/
481
+                    else
482
+                        cp -rf $temp_restore_dir/* /home/$USERNAME/.spamassassin/
483
+                    fi
428 484
                     if [ ! "$?" = "0" ]; then
429 485
                         rm -rf $temp_restore_dir
430 486
                         set_user_permissions
@@ -457,7 +513,11 @@ function restore_admin_readme {
457 513
 
458 514
         temp_restore_dir=/root/tempreadme
459 515
         restore_directory_from_usb $temp_restore_dir readme
460
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
516
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
517
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
518
+        else
519
+            cp -f $temp_restore_dir/README /home/$ADMIN_USERNAME/README
520
+        fi
461 521
         if [ ! "$?" = "0" ]; then
462 522
             rm -rf $temp_restore_dir
463 523
             set_user_permissions
@@ -484,7 +544,11 @@ function restore_user_ssh_keys {
484 544
                 echo $"Restoring ssh keys for $USERNAME"
485 545
                 temp_restore_dir=/root/tempssh
486 546
                 restore_directory_from_usb $temp_restore_dir ssh/$USERNAME
487
-                cp -r $temp_restore_dir/home/$USERNAME/.ssh /home/$USERNAME/
547
+                if [ -d $temp_restore_dir/home/$USERNAME/.ssh ]; then
548
+                    cp -r $temp_restore_dir/home/$USERNAME/.ssh /home/$USERNAME/
549
+                else
550
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.ssh/
551
+                fi
488 552
                 if [ ! "$?" = "0" ]; then
489 553
                     rm -rf $temp_restore_dir
490 554
                     set_user_permissions
@@ -513,7 +577,11 @@ function restore_user_config {
513 577
                 echo $"Restoring config files for $USERNAME"
514 578
                 temp_restore_dir=/root/tempconfig
515 579
                 restore_directory_from_usb $temp_restore_dir config/$USERNAME
516
-                cp -r $temp_restore_dir/home/$USERNAME/.config /home/$USERNAME/
580
+                if [ -d $temp_restore_dir/home/$USERNAME/.config ]; then
581
+                    cp -r $temp_restore_dir/home/$USERNAME/.config /home/$USERNAME/
582
+                else
583
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.config/
584
+                fi
517 585
                 if [ ! "$?" = "0" ]; then
518 586
                     rm -rf $temp_restore_dir
519 587
                     set_user_permissions
@@ -542,7 +610,11 @@ function restore_user_monkeysphere {
542 610
                 echo $"Restoring monkeysphere ids for $USERNAME"
543 611
                 temp_restore_dir=/root/tempmonkeysphere
544 612
                 restore_directory_from_usb $temp_restore_dir monkeysphere/$USERNAME
545
-                cp -r $temp_restore_dir/home/$USERNAME/.monkeysphere /home/$USERNAME/
613
+                if [ -d $temp_restore_dir/home/$USERNAME/.monkeysphere ]; then
614
+                    cp -r $temp_restore_dir/home/$USERNAME/.monkeysphere /home/$USERNAME/
615
+                else
616
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.monkeysphere
617
+                fi
546 618
                 if [ ! "$?" = "0" ]; then
547 619
                     rm -rf $temp_restore_dir
548 620
                     set_user_permissions
@@ -579,7 +651,11 @@ function restore_user_fin {
579 651
                 echo $"Restoring fin files for $USERNAME"
580 652
                 temp_restore_dir=/root/tempfin
581 653
                 restore_directory_from_usb $temp_restore_dir fin/$USERNAME
582
-                cp -r $temp_restore_dir/home/$USERNAME/.fin /home/$USERNAME/
654
+                if [ -d $temp_restore_dir/home/$USERNAME/.fin ]; then
655
+                    cp -r $temp_restore_dir/home/$USERNAME/.fin /home/$USERNAME/
656
+                else
657
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.fin/
658
+                fi
583 659
                 if [ ! "$?" = "0" ]; then
584 660
                     rm -rf $temp_restore_dir
585 661
                     set_user_permissions
@@ -608,7 +684,11 @@ function restore_user_local {
608 684
                 echo $"Restoring local files for $USERNAME"
609 685
                 temp_restore_dir=/root/templocal
610 686
                 restore_directory_from_usb $temp_restore_dir local/$USERNAME
611
-                cp -r $temp_restore_dir/home/$USERNAME/.local /home/$USERNAME/
687
+                if [ -d $temp_restore_dir/home/$USERNAME/.local ]; then
688
+                    cp -r $temp_restore_dir/home/$USERNAME/.local /home/$USERNAME/
689
+                else
690
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.local/
691
+                fi
612 692
                 if [ ! "$?" = "0" ]; then
613 693
                     rm -rf $temp_restore_dir
614 694
                     set_user_permissions
@@ -631,7 +711,11 @@ function restore_certs {
631 711
         echo $"Restoring certificates"
632 712
         mkdir /root/tempssl
633 713
         restore_directory_from_usb /root/tempssl ssl
634
-        cp -r /root/tempssl/etc/ssl/* /etc/ssl
714
+        if [ -d /root/tempssl/etc/ssl ]; then
715
+            cp -r /root/tempssl/etc/ssl/* /etc/ssl
716
+        else
717
+            cp -r /root/tempssl/* /etc/ssl/
718
+        fi
635 719
         if [ ! "$?" = "0" ]; then
636 720
             set_user_permissions
637 721
             backup_unmount_drive
@@ -686,7 +770,11 @@ function restore_personal_settings {
686 770
                     if [ -d /home/$USERNAME/personal ]; then
687 771
                         rm -rf /home/$USERNAME/personal
688 772
                     fi
689
-                    mv $temp_restore_dir/home/$USERNAME/personal /home/$USERNAME
773
+                    if [ -d $temp_restore_dir/home/$USERNAME/personal ]; then
774
+                        mv $temp_restore_dir/home/$USERNAME/personal /home/$USERNAME
775
+                    else
776
+                        cp -r $temp_restore_dir/* /home/$USERNAME/personal/
777
+                    fi
690 778
                     if [ ! "$?" = "0" ]; then
691 779
                         set_user_permissions
692 780
                         backup_unmount_drive
@@ -709,7 +797,11 @@ function restore_mailing_list {
709 797
         echo $"Restoring public mailing list"
710 798
         temp_restore_dir=/root/tempmailinglist
711 799
         restore_directory_from_usb $temp_restore_dir mailinglist
712
-        cp -r $temp_restore_dir/root/spool/mlmmj/* /var/spool/mlmmj
800
+        if [ -d $temp_restore_dir/root/spool/mlmmj ]; then
801
+            cp -r $temp_restore_dir/root/spool/mlmmj/* /var/spool/mlmmj
802
+        else
803
+            cp -r $temp_restore_dir/* /var/spool/mlmmj/
804
+        fi
713 805
         if [ ! "$?" = "0" ]; then
714 806
             set_user_permissions
715 807
             backup_unmount_drive
@@ -738,11 +830,15 @@ function restore_email {
738 830
                 if [ ! -d /home/$USERNAME/Maildir ]; then
739 831
                     mkdir /home/$USERNAME/Maildir
740 832
                 fi
741
-                tar -xzvf $temp_restore_dir/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
833
+                if [ -d $temp_restore_dir/root/tempbackupemail/$USERNAME ]; then
834
+                    tar -xzvf $temp_restore_dir/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
835
+                else
836
+                    tar -xzvf $temp_restore_dir/maildir.tar.gz -C /
837
+                fi
742 838
                 if [ ! "$?" = "0" ]; then
743 839
                     set_user_permissions
744 840
                     backup_unmount_drive
745
-                    exit 927
841
+                    exit 9276382
746 842
                 fi
747 843
                 rm -rf $temp_restore_dir
748 844
             fi

+ 123
- 37
src/freedombone-restore-remote View File

@@ -113,10 +113,11 @@ function restore_blocklist {
113 113
         echo $"Restoring blocklist"
114 114
         temp_restore_dir=/root/tempblocklist
115 115
         restore_directory_from_friend $temp_restore_dir blocklist
116
-        restore_directory_from_usb $temp_restore_dir blocklist
117 116
 
118
-        if [ -f $temp_restore_dir/root/tempbackupblocklist/${PROJECT_NAME}-firewall-domains.cfg ]; then
117
+        if [ -d $temp_restore_dir/root/tempbackupblocklist ]; then
119 118
             cp -f $temp_restore_dir/root/tempbackupblocklist/${PROJECT_NAME}-firewall-domains.cfg /root/${PROJECT_NAME}-firewall-domains.cfg
119
+        else
120
+            cp -f $temp_restore_dir/${PROJECT_NAME}-firewall-domains.cfg /root/${PROJECT_NAME}-firewall-domains.cfg
120 121
         fi
121 122
 
122 123
         rm -rf $temp_restore_dir
@@ -136,13 +137,25 @@ function restore_configfiles {
136 137
         temp_restore_dir=/root/tempconfigfiles
137 138
         restore_directory_from_friend $temp_restore_dir configfiles
138 139
 
139
-        if [ -f $temp_restore_dir/root/.nostore ]; then
140
-            if [ ! -f /root/.nostore ]; then
141
-                touch /root/.nostore
140
+        if [ -d $temp_restore_dir/root ]; then
141
+            if [ -f $temp_restore_dir/root/.nostore ]; then
142
+                if [ ! -f /root/.nostore ]; then
143
+                    touch /root/.nostore
144
+                fi
145
+            else
146
+                if [ -f /root/.nostore ]; then
147
+                    rm /root/.nostore
148
+                fi
142 149
             fi
143 150
         else
144
-            if [ -f /root/.nostore ]; then
145
-                rm /root/.nostore
151
+            if [ -f $temp_restore_dir/.nostore ]; then
152
+                if [ ! -f /root/.nostore ]; then
153
+                    touch /root/.nostore
154
+                fi
155
+            else
156
+                if [ -f /root/.nostore ]; then
157
+                    rm /root/.nostore
158
+                fi
146 159
             fi
147 160
         fi
148 161
 
@@ -214,11 +227,19 @@ function restore_mariadb {
214 227
         db_pass=$(cat /root/.mariadboriginal)
215 228
         if [ ${#db_pass} -gt 0 ]; then
216 229
             echo $"Restore the MariaDB user table"
217
-            mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
230
+            if [ -d ${temp_restore_dir}${temp_restore_dir} ]; then
231
+                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
232
+            else
233
+                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}/mysql.sql)
234
+            fi
218 235
             if [ ! "$?" = "0" ]; then
219 236
                 echo $"Try again using the password obtained from backup"
220 237
                 db_pass=$(${PROJECT_NAME}-pass -u root -a mariadb)
221
-                mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
238
+                if [ -d ${temp_restore_dir}${temp_restore_dir} ]; then
239
+                    mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
240
+                else
241
+                    mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}/mysql.sql)
242
+                fi
222 243
             fi
223 244
             if [ ! "$?" = "0" ]; then
224 245
                 echo "$mysqlsuccess"
@@ -242,7 +263,7 @@ function restore_letsencrypt {
242 263
     fi
243 264
     if [ -d $SERVER_DIRECTORY/backup/letsencrypt ]; then
244 265
         echo $"Restoring Lets Encrypt settings"
245
-        restore_directory_from_friend / letsencrypt
266
+        restore_directory_from_friend /etc/letsencrypt letsencrypt
246 267
     fi
247 268
 }
248 269
 
@@ -255,7 +276,7 @@ function restore_passwordstore {
255 276
     if [ -d $SERVER_DIRECTORY/backup/passwordstore ]; then
256 277
         store_original_mariadb_password
257 278
         echo $"Restoring password store"
258
-        restore_directory_from_friend / passwordstore
279
+        restore_directory_from_friend /root/.passwords passwordstore
259 280
     fi
260 281
 }
261 282
 
@@ -267,7 +288,7 @@ function restore_tor {
267 288
     fi
268 289
     if [ -d $SERVER_DIRECTORY/backup/tor ]; then
269 290
         echo $"Restoring Tor settings"
270
-        restore_directory_from_friend / tor
291
+        restore_directory_from_friend /var/lib/tor tor
271 292
     fi
272 293
 }
273 294
 
@@ -287,15 +308,28 @@ function restore_mutt_settings {
287 308
                 echo $"Restoring Mutt settings for $USERNAME"
288 309
                 temp_restore_dir=/root/tempmutt
289 310
                 restore_directory_from_friend ${temp_restore_dir} mutt/$USERNAME
290
-                if [ -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.muttrc ]; then
291
-                    cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
292
-                    sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
293
-                    sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
294
-                fi
295
-                if [ -f ${temp_restore_dir}/home/$USERNAME/tempbackup/Muttrc ]; then
296
-                    cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
297
-                    sed -i '/set sidebar_delim/d' /etc/Muttrc
298
-                    sed -i '/set sidebar_sort/d' /etc/Muttrc
311
+                if [ -d ${temp_restore_dir}/home/$USERNAME/tempbackup ]; then
312
+                    if [ -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.muttrc ]; then
313
+                        cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
314
+                        sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
315
+                        sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
316
+                    fi
317
+                    if [ -f ${temp_restore_dir}/home/$USERNAME/tempbackup/Muttrc ]; then
318
+                        cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
319
+                        sed -i '/set sidebar_delim/d' /etc/Muttrc
320
+                        sed -i '/set sidebar_sort/d' /etc/Muttrc
321
+                    fi
322
+                else
323
+                    if [ -f ${temp_restore_dir}/.muttrc ]; then
324
+                        cp -f ${temp_restore_dir}/.muttrc /home/$USERNAME/.muttrc
325
+                        sed -i '/set sidebar_delim/d' /home/$USERNAME/.muttrc
326
+                        sed -i '/set sidebar_sort/d' /home/$USERNAME/.muttrc
327
+                    fi
328
+                    if [ -f ${temp_restore_dir}/Muttrc ]; then
329
+                        cp -f ${temp_restore_dir}/Muttrc /etc/Muttrc
330
+                        sed -i '/set sidebar_delim/d' /etc/Muttrc
331
+                        sed -i '/set sidebar_sort/d' /etc/Muttrc
332
+                    fi
299 333
                 fi
300 334
                 if [ ! "$?" = "0" ]; then
301 335
                     rm -rf ${temp_restore_dir}
@@ -322,7 +356,11 @@ function restore_gpg {
322 356
                 echo $"Restoring gnupg settings for $USERNAME"
323 357
                 temp_restore_dir=/root/tempgnupg
324 358
                 restore_directory_from_friend ${temp_restore_dir} gnupg/$USERNAME
325
-                cp -r ${temp_restore_dir}/home/$USERNAME/.gnupg /home/$USERNAME/
359
+                if [ -d ${temp_restore_dir}/home/$USERNAME/.gnupg ]; then
360
+                    cp -r ${temp_restore_dir}/home/$USERNAME/.gnupg /home/$USERNAME/
361
+                else
362
+                    cp -r ${temp_restore_dir}/* /home/$USERNAME/.gnupg/
363
+                fi
326 364
                 if [ ! "$?" = "0" ]; then
327 365
                     rm -rf ${temp_restore_dir}
328 366
                     exit 276
@@ -356,7 +394,11 @@ function restore_procmail {
356 394
                 echo $"Restoring procmail settings for $USERNAME"
357 395
                 temp_restore_dir=/root/tempprocmail
358 396
                 restore_directory_from_friend ${temp_restore_dir} procmail/$USERNAME
359
-                cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
397
+                if [ -d ${temp_restore_dir}/home/$USERNAME/tempbackup ]; then
398
+                    cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
399
+                else
400
+                    cp -f ${temp_restore_dir}/.procmailrc /home/$USERNAME/.procmailrc
401
+                fi
360 402
                 if [ ! "$?" = "0" ]; then
361 403
                     rm -rf ${temp_restore_dir}
362 404
                     exit 276
@@ -383,7 +425,11 @@ function restore_spamassassin {
383 425
                 echo $"Restoring spamassassin settings for $USERNAME"
384 426
                 temp_restore_dir=/root/tempspamassassin
385 427
                 restore_directory_from_friend $temp_restore_dir spamassassin/$USERNAME
386
-                cp -rf $temp_restore_dir/home/$USERNAME/.spamassassin /home/$USERNAME/
428
+                if [ -d $temp_restore_dir/home/$USERNAME ]; then
429
+                    cp -rf $temp_restore_dir/home/$USERNAME/.spamassassin /home/$USERNAME/
430
+                else
431
+                    cp -rf $temp_restore_dir/* /home/$USERNAME/.spamassassin/
432
+                fi
387 433
                 if [ ! "$?" = "0" ]; then
388 434
                     rm -rf $temp_restore_dir
389 435
                     exit 276
@@ -404,7 +450,11 @@ function restore_admin_readme {
404 450
         echo $"Restoring README"
405 451
         temp_restore_dir=/root/tempreadme
406 452
         restore_directory_from_friend $temp_restore_dir readme
407
-        cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
453
+        if [ -d $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup ]; then
454
+            cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
455
+        else
456
+            cp -f $temp_restore_dir/README /home/$ADMIN_USERNAME/README
457
+        fi
408 458
         if [ ! "$?" = "0" ]; then
409 459
             rm -rf $temp_restore_dir
410 460
             exit 276
@@ -429,7 +479,11 @@ function restore_ssh_keys {
429 479
                 echo $"Restoring ssh keys for $USERNAME"
430 480
                 temp_restore_dir=/root/tempssh
431 481
                 restore_directory_from_friend $temp_restore_dir ssh/$USERNAME
432
-                cp -r $temp_restore_dir/home/$USERNAME/.ssh /home/$USERNAME/
482
+                if [ -d $temp_restore_dir/home/$USERNAME/.ssh ]; then
483
+                    cp -r $temp_restore_dir/home/$USERNAME/.ssh /home/$USERNAME/
484
+                else
485
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.ssh/
486
+                fi
433 487
                 if [ ! "$?" = "0" ]; then
434 488
                     rm -rf $temp_restore_dir
435 489
                     exit 664
@@ -456,7 +510,11 @@ function restore_user_config {
456 510
                 echo $"Restoring config files for $USERNAME"
457 511
                 temp_restore_dir=/root/tempconfig
458 512
                 restore_directory_from_friend $temp_restore_dir config/$USERNAME
459
-                cp -r $temp_restore_dir/home/$USERNAME/.config /home/$USERNAME/
513
+                if [ -d $temp_restore_dir/home/$USERNAME ]; then
514
+                    cp -r $temp_restore_dir/home/$USERNAME/.config /home/$USERNAME/
515
+                else
516
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.config/
517
+                fi
460 518
                 if [ ! "$?" = "0" ]; then
461 519
                     rm -rf $temp_restore_dir
462 520
                     exit 664
@@ -483,7 +541,11 @@ function restore_user_monkeysphere {
483 541
                 echo $"Restoring monkeysphere ids for $USERNAME"
484 542
                 temp_restore_dir=/root/tempmonkeysphere
485 543
                 restore_directory_from_friend $temp_restore_dir monkeysphere/$USERNAME
486
-                cp -r $temp_restore_dir/home/$USERNAME/.monkeysphere /home/$USERNAME/
544
+                if [ -d $temp_restore_dir/home/$USERNAME/.monkeysphere ]; then
545
+                    cp -r $temp_restore_dir/home/$USERNAME/.monkeysphere /home/$USERNAME/
546
+                else
547
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.monkeysphere/
548
+                fi
487 549
                 if [ ! "$?" = "0" ]; then
488 550
                     rm -rf $temp_restore_dir
489 551
                     exit 664
@@ -518,7 +580,11 @@ function restore_user_fin {
518 580
                 echo $"Restoring fin files for $USERNAME"
519 581
                 temp_restore_dir=/root/tempfin
520 582
                 restore_directory_from_friend $temp_restore_dir fin/$USERNAME
521
-                cp -r $temp_restore_dir/home/$USERNAME/.fin /home/$USERNAME/
583
+                if [ -d $temp_restore_dir/home/$USERNAME/.fin ]; then
584
+                    cp -r $temp_restore_dir/home/$USERNAME/.fin /home/$USERNAME/
585
+                else
586
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.fin/
587
+                fi
522 588
                 if [ ! "$?" = "0" ]; then
523 589
                     rm -rf $temp_restore_dir
524 590
                     exit 664
@@ -545,7 +611,11 @@ function restore_user_local {
545 611
                 echo $"Restoring local files for $USERNAME"
546 612
                 temp_restore_dir=/root/templocal
547 613
                 restore_directory_from_friend $temp_restore_dir local/$USERNAME
548
-                cp -r $temp_restore_dir/home/$USERNAME/.local /home/$USERNAME/
614
+                if [ -d $temp_restore_dir/home/$USERNAME/.local ]; then
615
+                    cp -r $temp_restore_dir/home/$USERNAME/.local /home/$USERNAME/
616
+                else
617
+                    cp -r $temp_restore_dir/* /home/$USERNAME/.local/
618
+                fi
549 619
                 if [ ! "$?" = "0" ]; then
550 620
                     rm -rf $temp_restore_dir
551 621
                     exit 664
@@ -565,7 +635,11 @@ function restore_certs {
565 635
     if [ -d $SERVER_DIRECTORY/backup/ssl ]; then
566 636
         echo $"Restoring certificates"
567 637
         restore_directory_from_friend /root/tempssl ssl
568
-        cp -r /root/tempssl/etc/ssl/* /etc/ssl
638
+        if [ -d /root/tempssl/etc/ssl ]; then
639
+            cp -r /root/tempssl/etc/ssl/* /etc/ssl
640
+        else
641
+            cp -r /root/tempssl/* /etc/ssl/
642
+        fi
569 643
         if [ ! "$?" = "0" ]; then
570 644
             exit 276
571 645
         fi
@@ -614,12 +688,16 @@ function restore_personal_settings {
614 688
                 echo $"Restoring personal settings for $USERNAME"
615 689
                 temp_restore_dir=/root/temppersonal
616 690
                 restore_directory_from_friend $temp_restore_dir personal/$USERNAME
617
-                if [ -d /home/$USERNAME/personal ]; then
618
-                    rm -rf /home/$USERNAME/personal
691
+                if [ -d $temp_restore_dir/home/$USERNAME/personal ]; then
692
+                    if [ -d /home/$USERNAME/personal ]; then
693
+                        rm -rf /home/$USERNAME/personal
694
+                    fi
695
+                    mv $temp_restore_dir/home/$USERNAME/personal /home/$USERNAME
696
+                else
697
+                    cp -r $temp_restore_dir/* /home/$USERNAME/personal/
619 698
                 fi
620
-                mv $temp_restore_dir/home/$USERNAME/personal /home/$USERNAME
621 699
                 if [ ! "$?" = "0" ]; then
622
-                    exit 184
700
+                    exit 18437643
623 701
                 fi
624 702
                 rm -rf $temp_restore_dir
625 703
             fi
@@ -637,7 +715,11 @@ function restore_mailing_list {
637 715
         echo $"Restoring public mailing list"
638 716
         temp_restore_dir=/root/tempmailinglist
639 717
         restore_directory_from_friend $temp_restore_dir mailinglist
640
-        cp -r $temp_restore_dir/root/spool/mlmmj/* /var/spool/mlmmj
718
+        if [ -d $temp_restore_dir/root/spool/mlmmj ]; then
719
+            cp -r $temp_restore_dir/root/spool/mlmmj/* /var/spool/mlmmj
720
+        else
721
+            cp -r $temp_restore_dir/* /var/spool/mlmmj/
722
+        fi
641 723
         if [ ! "$?" = "0" ]; then
642 724
             exit 526
643 725
         fi
@@ -664,7 +746,11 @@ function restore_email {
664 746
                 if [ ! -d /home/$USERNAME/Maildir ]; then
665 747
                     mkdir /home/$USERNAME/Maildir
666 748
                 fi
667
-                tar -xzvf $temp_restore_dir/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
749
+                if [ -d $temp_restore_dir/root/tempbackupemail/$USERNAME ]; then
750
+                    tar -xzvf $temp_restore_dir/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
751
+                else
752
+                    tar -xzvf $temp_restore_dir/maildir.tar.gz -C /
753
+                fi
668 754
                 if [ ! "$?" = "0" ]; then
669 755
                     exit 927
670 756
                 fi

+ 48
- 11
src/freedombone-utils-backup View File

@@ -628,7 +628,11 @@ function restore_database_from_friend {
628 628
         echo $"Restoring ${1} database"
629 629
         local_database_dir=/root/temp${1}data
630 630
         restore_directory_from_friend ${local_database_dir} ${1}data
631
-        if [ ! -f ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then
631
+        database_file=${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/${restore_app_name}.sql
632
+        if [ ! -f $database_file ]; then
633
+            database_file=${local_database_dir}/${restore_app_name}.sql
634
+        fi
635
+        if [ ! -f $database_file ]; then
632 636
             echo $"Unable to restore ${1} database"
633 637
             rm -rf ${local_database_dir}
634 638
             exit 503
@@ -639,21 +643,35 @@ function restore_database_from_friend {
639 643
             echo "$mysqlsuccess"
640 644
             exit 964
641 645
         fi
642
-        shred -zu ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/*
646
+        if [ -d ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data ]; then
647
+            shred -zu ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/*
648
+        else
649
+            shred -zu ${local_database_dir}/*.sql
650
+        fi
643 651
         rm -rf ${local_database_dir}
644 652
         echo $"Restoring ${1} installation"
645 653
         restore_directory_from_friend /root/temp${1} ${1}
646 654
         RESTORE_SUBDIR="var"
647 655
         if [ ${1} ]; then
656
+            # create directory to restore to
648 657
             if [ ! -d /var/www/${2}/htdocs ]; then
649 658
                 mkdir -p /var/www/${2}/htdocs
650 659
                 chown www-data:www-data /var/www/${2}/htdocs
651 660
             fi
652 661
 
653 662
             if [ -d /var/www/${2}/htdocs ]; then
654
-                if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
655
-                    rm -rf /var/www/${2}/htdocs
656
-                    mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/
663
+                restore_from_dir=/root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs
664
+                if [ ! -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
665
+                    restore_from_dir=/root/temp${1}
666
+                fi
667
+
668
+                if [ -d $restore_from_dir ]; then
669
+                    if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
670
+                        rm -rf /var/www/${2}/htdocs
671
+                        mv $restore_from_dir /var/www/${2}/
672
+                    else
673
+                        cp -r $restore_from_dir/* /var/www/${2}/htdocs/
674
+                    fi
657 675
                     if [ ! "$?" = "0" ]; then
658 676
                         exit 683
659 677
                     fi
@@ -685,7 +703,11 @@ function restore_database {
685 703
         fi
686 704
         function_check restore_directory_from_usb
687 705
         restore_directory_from_usb "${local_database_dir}" "${restore_app_name}data"
688
-        if [ ! -f /root/temp${restore_app_name}data/${RESTORE_SUBDIR}/temp${restore_app_name}data/${restore_app_name}.sql ]; then
706
+        database_file=${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/${restore_app_name}.sql
707
+        if [ ! -f $database_file ]; then
708
+            database_file=${local_database_dir}/${restore_app_name}.sql
709
+        fi
710
+        if [ ! -f $database_file ]; then
689 711
             echo $"Unable to restore ${restore_app_name} database"
690 712
             rm -rf ${local_database_dir}
691 713
             function_check set_user_permissions
@@ -695,7 +717,7 @@ function restore_database {
695 717
             exit 503
696 718
         fi
697 719
         keep_database_running
698
-        mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${restore_app_name} -o < ${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/${restore_app_name}.sql)
720
+        mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${restore_app_name} -o < $database_file)
699 721
         if [ ! "$?" = "0" ]; then
700 722
             echo "$mysqlsuccess"
701 723
             function_check set_user_permissions
@@ -704,7 +726,12 @@ function restore_database {
704 726
             backup_unmount_drive
705 727
             exit 964
706 728
         fi
707
-        shred -zu ${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/*
729
+        if [ -d ${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data ]; then
730
+            shred -zu ${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/*
731
+        else
732
+            shred -zu ${local_database_dir}/*.sql
733
+        fi
734
+
708 735
         rm -rf ${local_database_dir}
709 736
         echo $"Restoring ${restore_app_name} installation"
710 737
         if [ ! -d /root/temp${restore_app_name} ]; then
@@ -714,14 +741,24 @@ function restore_database {
714 741
         restore_directory_from_usb "/root/temp${restore_app_name}" "${restore_app_name}"
715 742
         RESTORE_SUBDIR="var"
716 743
         if [ ${restore_app_domain} ]; then
744
+            # create directory to restore to
717 745
             if [ ! -d /var/www/${restore_app_domain}/htdocs ]; then
718 746
                 mkdir -p /var/www/${restore_app_domain}/htdocs
719 747
                 chown www-data:www-data /var/www/${restore_app_domain}/htdocs
720 748
             fi
749
+
721 750
             if [ -d /var/www/${restore_app_domain}/htdocs ]; then
722
-                if [ -d /root/temp${restore_app_name}/${RESTORE_SUBDIR}/www/${restore_app_domain}/htdocs ]; then
723
-                    rm -rf /var/www/${restore_app_domain}/htdocs
724
-                    mv /root/temp${restore_app_name}/${RESTORE_SUBDIR}/www/${restore_app_domain}/htdocs /var/www/${restore_app_domain}/
751
+                restore_from_dir=/root/temp${restore_app_name}/${RESTORE_SUBDIR}/www/${restore_app_domain}/htdocs
752
+                if [ ! -d $restore_from_dir ]; then
753
+                    restore_from_dir=/root/temp${restore_app_name}
754
+                fi
755
+                if [ -d $restore_from_dir ]; then
756
+                    if [ -d /root/temp${restore_app_name}/${RESTORE_SUBDIR}/www/${restore_app_domain}/htdocs ]; then
757
+                        rm -rf /var/www/${restore_app_domain}/htdocs
758
+                        mv $restore_from_dir /var/www/${restore_app_domain}/
759
+                    else
760
+                        cp -r $restore_from_dir/* /var/www/${restore_app_domain}/htdocs/
761
+                    fi
725 762
                     if [ ! "$?" = "0" ]; then
726 763
                         set_user_permissions
727 764
                         backup_unmount_drive