Browse Source

Refactoring restore from usb

Bob Mottram 9 years ago
parent
commit
0a6928a4f6
1 changed files with 41 additions and 81 deletions
  1. 41
    81
      src/freedombone

+ 41
- 81
src/freedombone View File

@@ -2904,6 +2904,16 @@ function create_backup_script {
2904 2904
   echo 'create_backup_script' >> $COMPLETION_FILE
2905 2905
 }
2906 2906
 
2907
+function restore_directory_from_usb {
2908
+  echo '  if [ ! -d ${1} ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2909
+  echo '    mkdir ${1}' >> /usr/bin/$RESTORE_SCRIPT_NAME
2910
+  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2911
+
2912
+  if [[ $BACKUP_TYPE == 'rsync' ]]; then
2913
+      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/${2} ${1} $USB_MOUNT/backup/${2}.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
2914
+  fi
2915
+}
2916
+
2907 2917
 function create_restore_script {
2908 2918
   if grep -Fxq "create_restore_script" $COMPLETION_FILE; then
2909 2919
       return
@@ -3013,10 +3023,7 @@ function create_restore_script {
3013 3023
   if [[ $BACKUP_INCLUDES_DATABASES == "yes" ]]; then
3014 3024
       echo "if [ -d $USB_MOUNT/backup/mariadb ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3015 3025
       echo '  echo "Restoring mysql settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3016
-      echo '  if [ ! -d /root/tempmariadb ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3017
-      echo '    mkdir /root/tempmariadb' >> /usr/bin/$RESTORE_SCRIPT_NAME
3018
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3019
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/mariadb /root/tempmariadb $USB_MOUNT/backup/mariadb.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3026
+      restore_directory_from_usb /root/tempmariadb mariadb
3020 3027
       echo '  echo "Get the MariaDB password from the backup"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3021 3028
       echo '  if [ ! -f /root/tempmariadb/usb/backup/mariadb/tempmariadb/db ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3022 3029
       echo '    echo "MariaDB password file not found"' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3054,8 +3061,7 @@ function create_restore_script {
3054 3061
 
3055 3062
   echo "if [ -d $USB_MOUNT/backup/mutt ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3056 3063
   echo '  echo "Restoring Mutt settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3057
-  echo '  mkdir /root/tempmutt' >> /usr/bin/$RESTORE_SCRIPT_NAME
3058
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/mutt /root/tempmutt $USB_MOUNT/backup/mutt.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3064
+  restore_directory_from_usb /root/tempmutt mutt
3059 3065
   echo '  if [ -f /root/tempmutt/usb/backup/mutt/$MY_USERNAME/tempbackup/.muttrc ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3060 3066
   echo '    cp -f /root/tempmutt/usb/backup/mutt/$MY_USERNAME/tempbackup/.muttrc /home/$MY_USERNAME/.muttrc' >> /usr/bin/$RESTORE_SCRIPT_NAME
3061 3067
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3074,8 +3080,7 @@ function create_restore_script {
3074 3080
 
3075 3081
   echo "if [ -d $USB_MOUNT/backup/gnupg ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3076 3082
   echo '  echo "Restoring gnupg settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3077
-  echo '  mkdir /root/tempgnupg' >> /usr/bin/$RESTORE_SCRIPT_NAME
3078
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/gnupg /root/tempgnupg $USB_MOUNT/backup/gnupg.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3083
+  restore_directory_from_usb /root/tempgnupg gnupg
3079 3084
   echo '  cp -r /root/tempgnupg/usb/backup/gnupg/$MY_USERNAME/.gnupg /home/$MY_USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3080 3085
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3081 3086
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3095,8 +3100,7 @@ function create_restore_script {
3095 3100
 
3096 3101
   echo "if [ -d $USB_MOUNT/backup/procmail ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3097 3102
   echo '  echo "Restoring procmail settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3098
-  echo '  mkdir /root/tempprocmail' >> /usr/bin/$RESTORE_SCRIPT_NAME
3099
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/procmail /root/tempprocmail $USB_MOUNT/backup/procmail.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3103
+  restore_directory_from_usb /root/tempprocmail procmail
3100 3104
   echo '  cp -f /root/tempprocmail/usb/backup/procmail/$MY_USERNAME/tempbackup/.procmailrc /home/$MY_USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3101 3105
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3102 3106
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3110,8 +3114,7 @@ function create_restore_script {
3110 3114
 
3111 3115
   echo "if [ -d $USB_MOUNT/backup/spamassassin ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3112 3116
   echo '  echo "Restoring spamassassin settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3113
-  echo '  mkdir /root/tempspamassassin' >> /usr/bin/$RESTORE_SCRIPT_NAME
3114
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/spamassassin /root/tempspamassassin $USB_MOUNT/backup/spamassassin.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3117
+  restore_directory_from_usb /root/tempspamassassin spamassassin
3115 3118
   echo '  cp -rf /root/tempspamassassin/usb/backup/spamassassin/$MY_USERNAME/.spamassassin /home/$MY_USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3116 3119
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3117 3120
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3125,8 +3128,7 @@ function create_restore_script {
3125 3128
 
3126 3129
   echo "if [ -d $USB_MOUNT/backup/readme ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3127 3130
   echo '  echo "Restoring README"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3128
-  echo '  mkdir /root/tempreadme' >> /usr/bin/$RESTORE_SCRIPT_NAME
3129
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/readme /root/tempreadme $USB_MOUNT/backup/readme.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3131
+  restore_directory_from_usb /root/tempreadme readme
3130 3132
   echo '  cp -f /root/tempreadme/usb/backup/readme/$MY_USERNAME/tempbackup/README /home/$MY_USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3131 3133
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3132 3134
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3140,8 +3142,7 @@ function create_restore_script {
3140 3142
 
3141 3143
   echo "if [ -d $USB_MOUNT/backup/ssh ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3142 3144
   echo '  echo "Restoring ssh keys"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3143
-  echo '  mkdir /root/tempssh' >> /usr/bin/$RESTORE_SCRIPT_NAME
3144
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/ssh /root/tempssh $USB_MOUNT/backup/ssh.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3145
+  restore_directory_from_usb /root/tempssh ssh
3145 3146
   echo '  cp -r /root/tempssh/usb/backup/ssh/$MY_USERNAME/.ssh /home/$MY_USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3146 3147
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3147 3148
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3156,7 +3157,7 @@ function create_restore_script {
3156 3157
   echo "if [ -d $USB_MOUNT/backup/ssl ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3157 3158
   echo '  echo "Restoring certificates"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3158 3159
   echo '  mkdir /root/tempssl' >> /usr/bin/$RESTORE_SCRIPT_NAME
3159
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/ssl /root/tempssl $USB_MOUNT/backup/ssl.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3160
+  restore_directory_from_usb /root/tempssl ssl
3160 3161
   echo '  cp -r /root/tempssl/usb/backup/ssl/ssl/* /etc/ssl' >> /usr/bin/$RESTORE_SCRIPT_NAME
3161 3162
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3162 3163
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3169,8 +3170,7 @@ function create_restore_script {
3169 3170
 
3170 3171
   echo "if [ -d $USB_MOUNT/backup/projects ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3171 3172
   echo '  echo "Restoring projects"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3172
-  echo '  mkdir /root/tempprojects' >> /usr/bin/$RESTORE_SCRIPT_NAME
3173
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/projects /root/tempprojects $USB_MOUNT/backup/projects.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3173
+  restore_directory_from_usb /root/tempprojects projects
3174 3174
   echo '  if [ -d /home/$MY_USERNAME/projects ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3175 3175
   echo '    rm -rf /home/$MY_USERNAME/projects' >> /usr/bin/$RESTORE_SCRIPT_NAME
3176 3176
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3186,8 +3186,7 @@ function create_restore_script {
3186 3186
 
3187 3187
   echo "if [ -d $USB_MOUNT/backup/personal ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3188 3188
   echo '  echo "Restoring personal settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3189
-  echo '  mkdir /root/temppersonal' >> /usr/bin/$RESTORE_SCRIPT_NAME
3190
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/personal /root/temppersonal $USB_MOUNT/backup/personal.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3189
+  restore_directory_from_usb /root/temppersonal personal
3191 3190
   echo '  if [ -d /home/$MY_USERNAME/personal ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3192 3191
   echo '    rm -rf /home/$MY_USERNAME/personal' >> /usr/bin/$RESTORE_SCRIPT_NAME
3193 3192
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3203,8 +3202,7 @@ function create_restore_script {
3203 3202
 
3204 3203
   echo "if [ -d $PUBLIC_MAILING_LIST_DIRECTORY ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3205 3204
   echo '  echo "Restoring public mailing list"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3206
-  echo '  mkdir /root/tempmailinglist' >> /usr/bin/$RESTORE_SCRIPT_NAME
3207
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/mailinglist /root/tempmailinglist $USB_MOUNT/backup/mailinglist.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3205
+  restore_directory_from_usb /root/tempmailinglist mailinglist
3208 3206
   echo "  cp -r /root/tempmailinglist/usb/backup/mailinglist/spool/mlmmj/* $PUBLIC_MAILING_LIST_DIRECTORY" >> /usr/bin/$RESTORE_SCRIPT_NAME
3209 3207
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3210 3208
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3217,8 +3215,7 @@ function create_restore_script {
3217 3215
 
3218 3216
   echo "if [ -d $XMPP_DIRECTORY ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3219 3217
   echo '  echo "Restoring XMPP settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3220
-  echo '  mkdir /root/tempxmpp' >> /usr/bin/$RESTORE_SCRIPT_NAME
3221
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/xmpp /root/tempxmpp $USB_MOUNT/backup/xmpp.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3218
+  restore_directory_from_usb /root/tempxmpp xmpp
3222 3219
   echo "  cp -r /root/tempxmpp/usb/backup/xmpp/lib/prosody/* $XMPP_DIRECTORY" >> /usr/bin/$RESTORE_SCRIPT_NAME
3223 3220
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3224 3221
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3237,10 +3234,7 @@ function create_restore_script {
3237 3234
       BACKUP_INCLUDES_WEBSITES="yes"
3238 3235
       echo "if [ -d $USB_MOUNT/backup/gnusocial ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3239 3236
       echo '  echo "Restoring microblog database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3240
-      echo '  if [ ! -d /root/tempgnusocialdata ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3241
-      echo '    mkdir /root/tempgnusocialdata' >> /usr/bin/$RESTORE_SCRIPT_NAME
3242
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3243
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/gnusocialdata /root/tempgnusocialdata $USB_MOUNT/backup/gnusocialdata.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3237
+      restore_directory_from_usb /root/tempgnusocialdata gnusocialdata
3244 3238
       echo '  if [ ! -f /root/tempgnusocialdata/usb/backup/gnusocialdata/tempgnusocialdata/gnusocial.sql ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3245 3239
       echo '    echo "Unable to restore microblog database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3246 3240
       echo '    rm -rf /root/tempgnusocialdata' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3261,7 +3255,7 @@ function create_restore_script {
3261 3255
       echo '  if [ ! -d /root/tempgnusocial ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3262 3256
       echo '    mkdir /root/tempgnusocial' >> /usr/bin/$RESTORE_SCRIPT_NAME
3263 3257
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3264
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/gnusocial /root/tempgnusocial $USB_MOUNT/backup/gnusocial.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3258
+      restore_directory_from_usb /root/tempgnusocial gnusocial
3265 3259
       echo "  rm -rf /var/www/$MICROBLOG_DOMAIN_NAME/htdocs" >> /usr/bin/$RESTORE_SCRIPT_NAME
3266 3260
       echo "  mv /root/tempgnusocial/usb/backup/gnusocial/www/$MICROBLOG_DOMAIN_NAME/htdocs /var/www/$MICROBLOG_DOMAIN_NAME/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3267 3261
       echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3282,10 +3276,7 @@ function create_restore_script {
3282 3276
       BACKUP_INCLUDES_WEBSITES="yes"
3283 3277
       echo "if [ -d $USB_MOUNT/backup/hubzilla ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3284 3278
       echo '  echo "Restoring Hubzilla database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3285
-      echo '  if [ ! -d /root/temphubzilladata ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3286
-      echo '    mkdir /root/temphubzilladata' >> /usr/bin/$RESTORE_SCRIPT_NAME
3287
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3288
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/hubzilladata /root/temphubzilladata $USB_MOUNT/backup/hubzilladata.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3279
+      restore_directory_from_usb /root/temphubzilladata hubzilladata
3289 3280
       echo '  if [ ! -f /root/temphubzilladata/usb/backup/hubzilladata/temphubzilladata/hubzilla.sql ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3290 3281
       echo '    echo "Unable to restore Hubzilla database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3291 3282
       echo '    rm -rf /root/temphubzilladata' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3303,10 +3294,7 @@ function create_restore_script {
3303 3294
       echo '  shred -zu /root/temphubzilladata/usb/backup/hubzilladata/temphubzilladata/*' >> /usr/bin/$RESTORE_SCRIPT_NAME
3304 3295
       echo '  rm -rf /root/temphubzilladata' >> /usr/bin/$RESTORE_SCRIPT_NAME
3305 3296
       echo '  echo "Restoring Hubzilla installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3306
-      echo '  if [ ! -d /root/temphubzilla ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3307
-      echo '    mkdir /root/temphubzilla' >> /usr/bin/$RESTORE_SCRIPT_NAME
3308
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3309
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/hubzilla /root/temphubzilla $USB_MOUNT/backup/hubzilla.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3297
+      restore_directory_from_usb /root/temphubzilla hubzilla
3310 3298
       echo "  rm -rf /var/www/$HUBZILLA_DOMAIN_NAME/htdocs" >> /usr/bin/$RESTORE_SCRIPT_NAME
3311 3299
       echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3312 3300
       echo "    cp -r /root/temphubzilla/usb/backup/hubzilla/www/$HUBZILLA_DOMAIN_NAME/htdocs/* /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3333,10 +3321,7 @@ function create_restore_script {
3333 3321
       BACKUP_INCLUDES_WEBSITES="yes"
3334 3322
       echo "if [ -d $USB_MOUNT/backup/owncloud ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3335 3323
       echo '  echo "Restoring owncloud database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3336
-      echo '  if [ ! -d /root/tempownclouddata ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3337
-      echo '    mkdir /root/tempownclouddata' >> /usr/bin/$RESTORE_SCRIPT_NAME
3338
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3339
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/ownclouddata /root/tempownclouddata $USB_MOUNT/backup/ownclouddata.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3324
+      restore_directory_from_usb /root/tempownclouddata ownclouddata
3340 3325
       echo '  if [ ! -f /root/tempownclouddata/usb/backup/ownclouddata/tempownclouddata/owncloud.sql ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3341 3326
       echo '    echo "Unable to restore Owncloud database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3342 3327
       echo '    rm -rf /root/tempownclouddata' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3352,20 +3337,14 @@ function create_restore_script {
3352 3337
       echo '    exit 965' >> /usr/bin/$RESTORE_SCRIPT_NAME
3353 3338
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3354 3339
       echo '  echo "Restoring Owncloud installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3355
-      echo '  if [ ! -d /root/tempowncloud ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3356
-      echo '    mkdir /root/tempowncloud' >> /usr/bin/$RESTORE_SCRIPT_NAME
3357
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3358
-      echo '  if [ ! -d /root/tempowncloud2 ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3359
-      echo '    mkdir /root/tempowncloud2' >> /usr/bin/$RESTORE_SCRIPT_NAME
3360
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3361
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/owncloud /root/tempowncloud $USB_MOUNT/backup/owncloud.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3340
+      restore_directory_from_usb /root/tempowncloud owncloud
3362 3341
       echo "  cp -r /root/tempowncloud/usb/backup/owncloud/lib/owncloud/* /var/lib/owncloud/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3363 3342
       echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3364 3343
       echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3365 3344
       echo "    rm -rf $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3366 3345
       echo '    exit 981' >> /usr/bin/$RESTORE_SCRIPT_NAME
3367 3346
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3368
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/owncloud2 /root/tempowncloud2 $USB_MOUNT/backup/owncloud2.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3347
+      restore_directory_from_usb /root/tempowncloud2 owncloud2
3369 3348
       echo "  cp -r /root/tempowncloud2/usb/backup/owncloud2/owncloud/* /etc/owncloud/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3370 3349
       echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3371 3350
       echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3391,10 +3370,7 @@ function create_restore_script {
3391 3370
       BACKUP_INCLUDES_WEBSITES="yes"
3392 3371
       echo "if [ -d $USB_MOUNT/backup/gogs ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3393 3372
       echo '  echo "Restoring gogs database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3394
-      echo '  if [ ! -d /root/tempgogsdata ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3395
-      echo '    mkdir /root/tempgogsdata' >> /usr/bin/$RESTORE_SCRIPT_NAME
3396
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3397
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/gogsdata /root/tempgogsdata $USB_MOUNT/backup/gogsdata.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3373
+      restore_directory_from_usb /root/tempgogsdata gogsdata
3398 3374
       echo '  if [ ! -f /root/tempgogsdata/usb/backup/gogsdata/tempgogsdata/gogs.sql ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3399 3375
       echo '    echo "Unable to restore Gogs database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3400 3376
       echo '    rm -rf /root/tempgogsdata' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3410,10 +3386,7 @@ function create_restore_script {
3410 3386
       echo '    exit 965' >> /usr/bin/$RESTORE_SCRIPT_NAME
3411 3387
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3412 3388
       echo '  echo "Restoring Gogs settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3413
-      echo '  if [ ! -d /root/tempgogs ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3414
-      echo '    mkdir /root/tempgogs' >> /usr/bin/$RESTORE_SCRIPT_NAME
3415
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3416
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/gogs /root/tempgogs $USB_MOUNT/backup/gogs.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3389
+      restore_directory_from_usb /root/tempgogs gogs
3417 3390
       echo '  if [ ! -d /home/git/go/src/github.com/gogits/gogs/custom ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3418 3391
       echo '    mkdir -p /home/git/go/src/github.com/gogits/gogs/custom' >> /usr/bin/$RESTORE_SCRIPT_NAME
3419 3392
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3424,10 +3397,7 @@ function create_restore_script {
3424 3397
       echo '    exit 981' >> /usr/bin/$RESTORE_SCRIPT_NAME
3425 3398
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3426 3399
       echo '  echo "Restoring Gogs repos"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3427
-      echo '  if [ ! -d /root/tempgogsrepos ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3428
-      echo '    mkdir /root/tempgogsrepos' >> /usr/bin/$RESTORE_SCRIPT_NAME
3429
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3430
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/gogsrepos /root/tempgogsrepos $USB_MOUNT/backup/gogsrepos.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3400
+      restore_directory_from_usb /root/tempgogsrepos gogsrepos
3431 3401
       echo "  cp -r /root/tempgogsrepos/usb/backup/gogsrepos/git/gogs-repositories/* /home/git/gogs-repositories/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3432 3402
       echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3433 3403
       echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3435,10 +3405,7 @@ function create_restore_script {
3435 3405
       echo '    exit 67574' >> /usr/bin/$RESTORE_SCRIPT_NAME
3436 3406
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3437 3407
       echo '  echo "Restoring Gogs authorized_keys"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3438
-      echo '  if [ ! -d /root/tempgogsssh ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3439
-      echo '    mkdir /root/tempgogsssh' >> /usr/bin/$RESTORE_SCRIPT_NAME
3440
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3441
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/gogsssh /root/tempgogsssh $USB_MOUNT/backup/gogsssh.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3408
+      restore_directory_from_usb /root/tempgogsssh gogsssh
3442 3409
       echo '  if [ ! -d /home/git/.ssh ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3443 3410
       echo '    mkdir /home/git/.ssh' >> /usr/bin/$RESTORE_SCRIPT_NAME
3444 3411
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3463,16 +3430,14 @@ function create_restore_script {
3463 3430
 
3464 3431
   echo "if [ -d $USB_MOUNT/backup/wiki ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3465 3432
   echo '  echo "Restoring Wiki installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3466
-  echo '  mkdir /root/tempwiki' >> /usr/bin/$RESTORE_SCRIPT_NAME
3467
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/wiki /root/tempwiki $USB_MOUNT/backup/wiki.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3433
+  restore_directory_from_usb /root/tempwiki wiki
3468 3434
   echo "  cp -r /root/tempwiki/usb/backup/wiki/lib/dokuwiki/* /var/lib/dokuwiki/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3469 3435
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3470 3436
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3471 3437
   echo "    rm -rf $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3472 3438
   echo '    exit 868' >> /usr/bin/$RESTORE_SCRIPT_NAME
3473 3439
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3474
-  echo '  mkdir /root/tempwiki2' >> /usr/bin/$RESTORE_SCRIPT_NAME
3475
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/wiki2 /root/tempwiki2 $USB_MOUNT/backup/wiki2.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3440
+  restore_directory_from_usb /root/tempwiki2 wiki2
3476 3441
   echo "  cp -r /root/tempwiki2/usb/backup/wiki2/dokuwiki/* /etc/dokuwiki/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3477 3442
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3478 3443
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3491,8 +3456,7 @@ function create_restore_script {
3491 3456
 
3492 3457
   echo "if [ -d $USB_MOUNT/backup/blog ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3493 3458
   echo '  echo "Restoring blog installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3494
-  echo '  mkdir /root/tempblog' >> /usr/bin/$RESTORE_SCRIPT_NAME
3495
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/blog /root/tempblog $USB_MOUNT/backup/blog.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3459
+  restore_directory_from_usb /root/tempblog blog
3496 3460
   echo "  rm -rf /var/www/$FULLBLOG_DOMAIN_NAME/htdocs" >> /usr/bin/$RESTORE_SCRIPT_NAME
3497 3461
   echo "  cp -r /root/tempblog/usb/backup/blog/www/$FULLBLOG_DOMAIN_NAME/htdocs /var/www/$FULLBLOG_DOMAIN_NAME/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3498 3462
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3517,8 +3481,7 @@ function create_restore_script {
3517 3481
 
3518 3482
   echo "if [ -d $USB_MOUNT/backup/cjdns ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3519 3483
   echo '  echo "Restoring cjdns installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3520
-  echo '  mkdir /root/tempcjdns' >> /usr/bin/$RESTORE_SCRIPT_NAME
3521
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/cjdns /root/tempcjdns $USB_MOUNT/backup/cjdns.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3484
+  restore_directory_from_usb /root/tempcjdns cjdns
3522 3485
   echo "  rm -rf /etc/cjdns" >> /usr/bin/$RESTORE_SCRIPT_NAME
3523 3486
   echo "  cp -r /root/tempcjdns/usb/backup/cjdns/cjdns /etc/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3524 3487
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3532,8 +3495,7 @@ function create_restore_script {
3532 3495
 
3533 3496
   echo "if [ -d $USB_MOUNT/backup/mail ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3534 3497
   echo '  echo "Restoring emails"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3535
-  echo '  mkdir /root/tempmail' >> /usr/bin/$RESTORE_SCRIPT_NAME
3536
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/mail /root/tempmail $USB_MOUNT/backup/mail.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3498
+  restore_directory_from_usb /root/tempmail mail
3537 3499
   echo '  if [ ! -d /home/$MY_USERNAME/Maildir ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3538 3500
   echo '    mkdir /home/$MY_USERNAME/Maildir' >> /usr/bin/$RESTORE_SCRIPT_NAME
3539 3501
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3550,8 +3512,7 @@ function create_restore_script {
3550 3512
   echo "if [ -d /var/cache/minidlna ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3551 3513
   echo "  if [ -d $USB_MOUNT/backup/dlna ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3552 3514
   echo '    echo "Restoring DLNA cache"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3553
-  echo '    mkdir /root/tempdlna' >> /usr/bin/$RESTORE_SCRIPT_NAME
3554
-  echo "    rsyncrypto -v -d -r $USB_MOUNT/backup/dlna /root/tempdlna $USB_MOUNT/backup/dlna.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3515
+  restore_directory_from_usb /root/tempdlna dlna
3555 3516
   echo "    cp -r /root/tempdlna/usb/backup/dlna/cache/minidlna/* /var/cache/minidlna/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3556 3517
   echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3557 3518
   echo "      umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3565,8 +3526,7 @@ function create_restore_script {
3565 3526
 
3566 3527
   echo "if [ -d $USB_MOUNT/backup/voip ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3567 3528
   echo '  echo "Restoring VoIP settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3568
-  echo '  mkdir /root/tempvoip' >> /usr/bin/$RESTORE_SCRIPT_NAME
3569
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/voip /root/tempvoip $USB_MOUNT/backup/voip.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3529
+  restore_directory_from_usb /root/tempvoip voip
3570 3530
   echo -n '  cp -f /root/tempvoip/usb/backup/voip/$MY_USERNAME/tempbackup/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3571 3531
   echo "$VOIP_CONFIG_FILE /etc/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3572 3532
   echo -n '  cp -f /root/tempvoip/usb/backup/voip/$MY_USERNAME/tempbackup/' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -3586,7 +3546,7 @@ function create_restore_script {
3586 3546
 
3587 3547
   echo "if [ -d $USB_MOUNT/backup/tox ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3588 3548
   echo '  echo "Restoring Tox node settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3589
-  echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/tox /var/lib/tox-bootstrapd $USB_MOUNT/backup/tox.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3549
+  restore_directory_from_usb /var/lib/tox-bootstrapd tox
3590 3550
   echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3591 3551
   echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3592 3552
   echo "    rm -rf $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME