Kaynağa Gözat

Restore command

Bob Mottram 9 yıl önce
ebeveyn
işleme
ee51dfaf8e

+ 2
- 0
Makefile Dosyayı Görüntüle

@@ -20,6 +20,7 @@ install:
20 20
 	install -m 755 src/${APP}-meshweb ${DESTDIR}${PREFIX}/bin/meshweb
21 21
 	install -m 755 src/${APP}-controlpanel ${DESTDIR}${PREFIX}/bin/control
22 22
 	install -m 755 src/${APP}-backup-local ${DESTDIR}${PREFIX}/bin/backup
23
+	install -m 755 src/${APP}-restore-local ${DESTDIR}${PREFIX}/bin/restore
23 24
 	mkdir -m 755 -p ${DESTDIR}${PREFIX}/share/man/man1
24 25
 	install -m 644 man/*.1.gz ${DESTDIR}${PREFIX}/share/man/man1
25 26
 	bash -c "./translate install"
@@ -30,6 +31,7 @@ uninstall:
30 31
 	rm -f ${PREFIX}/bin/zeronetavahi
31 32
 	rm -f ${PREFIX}/bin/mesh
32 33
 	rm -f ${PREFIX}/bin/backup
34
+	rm -f ${PREFIX}/bin/restore
33 35
 	rm -f ${PREFIX}/bin/meshweb
34 36
 	rm -rf /etc/freedombone
35 37
 	bash -c "./translate uninstall"

BIN
man/freedombone-restore-local.1.gz Dosyayı Görüntüle


+ 3
- 870
src/freedombone Dosyayı Görüntüle

@@ -2889,871 +2889,6 @@ function restore_database {
2889 2889
   echo '}' >> $script_name
2890 2890
 }
2891 2891
 
2892
-function create_restore_script {
2893
-  if grep -Fxq "create_restore_script" $COMPLETION_FILE; then
2894
-      return
2895
-  fi
2896
-  apt-get -y install rsyncrypto cryptsetup obnam
2897
-
2898
-  get_mariadb_password
2899
-  get_mariadb_gnusocial_admin_password
2900
-  get_mariadb_hubzilla_admin_password
2901
-  get_mariadb_owncloud_admin_password
2902
-  get_mariadb_git_admin_password
2903
-
2904
-  echo '#!/bin/bash' > /usr/bin/$RESTORE_SCRIPT_NAME
2905
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2906
-  echo "COMPLETION_FILE=$COMPLETION_FILE" >> /usr/bin/$RESTORE_SCRIPT_NAME
2907
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2908
-  echo "USB_DRIVE=$USB_DRIVE" >> /usr/bin/$RESTORE_SCRIPT_NAME
2909
-  echo 'if [ $1 ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2910
-  echo '  USB_DRIVE=/dev/${1}1' >> /usr/bin/$RESTORE_SCRIPT_NAME
2911
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2912
-  echo "USB_MOUNT=$USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
2913
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2914
-  echo -n 'ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | ' >> /usr/bin/$RESTORE_SCRIPT_NAME
2915
-  echo -n "awk -F ':' '{print " >> /usr/bin/$RESTORE_SCRIPT_NAME
2916
-  echo -n '$2' >> /usr/bin/$RESTORE_SCRIPT_NAME
2917
-  echo "}')" >> /usr/bin/$RESTORE_SCRIPT_NAME
2918
-  echo 'MY_USERNAME=$ADMIN_USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
2919
-  echo 'if [ $2 ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2920
-  echo '  MY_USERNAME=$2' >> /usr/bin/$RESTORE_SCRIPT_NAME
2921
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2922
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2923
-  echo 'if [ ! -b $USB_DRIVE ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2924
-  echo '  echo "Please attach a USB drive"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2925
-  echo '  exit 1' >> /usr/bin/$RESTORE_SCRIPT_NAME
2926
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2927
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2928
-  echo 'if [ ! -d $USB_MOUNT ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2929
-  echo '  mkdir $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
2930
-  echo '  if [ -f /dev/mapper/encrypted_usb ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2931
-  echo '    rm -rf /dev/mapper/encrypted_usb' >> /usr/bin/$RESTORE_SCRIPT_NAME
2932
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2933
-  echo '  cryptsetup luksClose encrypted_usb' >> /usr/bin/$RESTORE_SCRIPT_NAME
2934
-  echo '  cryptsetup luksOpen $USB_DRIVE encrypted_usb' >> /usr/bin/$RESTORE_SCRIPT_NAME
2935
-  echo '  if [ "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2936
-  echo '      USB_DRIVE=/dev/mapper/encrypted_usb' >> /usr/bin/$RESTORE_SCRIPT_NAME
2937
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2938
-  echo -n '  mount $USB_DRIVE ' >> /usr/bin/$RESTORE_SCRIPT_NAME
2939
-  echo '$USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
2940
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2941
-  echo 'if [ ! -d $USB_MOUNT/backup ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2942
-  echo '  echo "No backup directory found on the USB drive."' >> /usr/bin/$RESTORE_SCRIPT_NAME
2943
-  echo '  umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
2944
-  echo '  rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
2945
-  echo '  exit 2' >> /usr/bin/$RESTORE_SCRIPT_NAME
2946
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2947
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2948
-
2949
-  echo 'echo "Checking that user exists"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2950
-  echo 'if [ ! -d /home/$MY_USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2951
-  echo '  echo "Username $MY_USERNAME not found. Reinstall Freedombone with this username."' >> /usr/bin/$RESTORE_SCRIPT_NAME
2952
-  echo '  umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
2953
-  echo '  rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
2954
-  echo '  exit 295' >> /usr/bin/$RESTORE_SCRIPT_NAME
2955
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2956
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2957
-
2958
-  echo 'echo "Copying GPG keys to root"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2959
-  echo 'cp -r /home/$MY_USERNAME/.gnupg /root' >> /usr/bin/$RESTORE_SCRIPT_NAME
2960
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2961
-
2962
-  echo '# MariaDB password' >> /usr/bin/$RESTORE_SCRIPT_NAME
2963
-  echo -n 'DATABASE_PASSWORD=$(cat ' >> /usr/bin/$RESTORE_SCRIPT_NAME
2964
-  echo "$DATABASE_PASSWORD_FILE)" >> /usr/bin/$RESTORE_SCRIPT_NAME
2965
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2966
-
2967
-  restore_directory_from_usb /usr/bin/$RESTORE_SCRIPT_NAME
2968
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2969
-  restore_database /usr/bin/$RESTORE_SCRIPT_NAME
2970
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2971
-
2972
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
2973
-      echo 'if [ -f $USB_MOUNT/backup/key.gpg ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2974
-      echo "  if [ -f $BACKUP_CERTIFICATE.new ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
2975
-      echo "    rm $BACKUP_CERTIFICATE.new" >> /usr/bin/$RESTORE_SCRIPT_NAME
2976
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2977
-      echo '  cp $USB_MOUNT/backup/key.gpg /root/tempbackupkey.gpg' >> /usr/bin/$RESTORE_SCRIPT_NAME
2978
-      echo "  gpg /root/tempbackupkey.gpg" >> /usr/bin/$RESTORE_SCRIPT_NAME
2979
-      echo "  if [ -f /root/tempbackupkey ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
2980
-      echo '    echo "Backup key decrypted"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2981
-      echo "    cp /root/tempbackupkey $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
2982
-      echo "    shred -zu /root/tempbackupkey" >> /usr/bin/$RESTORE_SCRIPT_NAME
2983
-      echo "    chmod 400 $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
2984
-      echo '    echo "Backup certificate installed"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2985
-      echo '  else' >> /usr/bin/$RESTORE_SCRIPT_NAME
2986
-      echo '    echo "Unable to decrypt the backup key"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2987
-      echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
2988
-      echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
2989
-      echo '    exit 735' >> /usr/bin/$RESTORE_SCRIPT_NAME
2990
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2991
-      echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2992
-      echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2993
-
2994
-      echo "if [ ! -f $BACKUP_CERTIFICATE ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
2995
-      echo "    echo 'No backup key was found. Copy your backup key to $BACKUP_CERTIFICATE'" >> /usr/bin/$RESTORE_SCRIPT_NAME
2996
-      echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
2997
-      echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
2998
-      echo '    exit 563' >> /usr/bin/$RESTORE_SCRIPT_NAME
2999
-      echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3000
-      echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3001
-  fi
3002
-
3003
-  echo '# Make a backup of the original README file' >> /usr/bin/$RESTORE_SCRIPT_NAME
3004
-  echo '# incase old passwords need to be used' >> /usr/bin/$RESTORE_SCRIPT_NAME
3005
-  echo 'if [ -f /home/$MY_USERNAME/README ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3006
-  echo '  if [ ! -f /home/$MY_USERNAME/README_original ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3007
-  echo '    cp /home/$MY_USERNAME/README /home/$MY_USERNAME/README_original' >> /usr/bin/$RESTORE_SCRIPT_NAME
3008
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3009
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3010
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3011
-
3012
-  if [[ $BACKUP_INCLUDES_DATABASES == "yes" ]]; then
3013
-      RESTORE_SUBDIR='root/'
3014
-      if [[ $BACKUP_TYPE != 'obnam' ]]; then
3015
-          RESTORE_SUBDIR='usb/backup/mariadb/'
3016
-      fi
3017
-      echo 'if [ -d $USB_MOUNT/backup/mariadb ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3018
-      echo '  echo "Restoring mysql settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3019
-      echo '  restore_directory_from_usb /root/tempmariadb mariadb' >> /usr/bin/$RESTORE_SCRIPT_NAME
3020
-      echo '  echo "Get the MariaDB password from the backup"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3021
-      echo "  if [ ! -f /root/tempmariadb/${RESTORE_SUBDIR}tempmariadb/db ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3022
-      echo '    echo "MariaDB password file not found"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3023
-      echo '    exit 495' >> /usr/bin/$RESTORE_SCRIPT_NAME
3024
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3025
-      echo -n '  BACKUP_MARIADB_PASSWORD=$(cat /root/tempmariadb/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3026
-      echo "${RESTORE_SUBDIR}tempmariadb/db)" >> /usr/bin/$RESTORE_SCRIPT_NAME
3027
-      echo '  if [[ $BACKUP_MARIADB_PASSWORD != $DATABASE_PASSWORD ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3028
-      echo '    echo "Restore the MariaDB user table"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3029
-      echo -n '    mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD mysql -o < ' >> /usr/bin/$RESTORE_SCRIPT_NAME
3030
-      echo "/root/tempmariadb/${RESTORE_SUBDIR}tempmariadb/mysql.sql)" >> /usr/bin/$RESTORE_SCRIPT_NAME
3031
-      echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3032
-      echo '      echo "Try again using the password obtained from backup"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3033
-      echo -n '      mysqlsuccess=$(mysql -u root --password=$BACKUP_MARIADB_PASSWORD mysql -o < ' >> /usr/bin/$RESTORE_SCRIPT_NAME
3034
-      echo "/root/tempmariadb/${RESTORE_SUBDIR}tempmariadb/mysql.sql)" >> /usr/bin/$RESTORE_SCRIPT_NAME
3035
-      echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3036
-      echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3037
-      echo '      echo "$mysqlsuccess"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3038
-      echo '      umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3039
-      echo '      rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3040
-      echo '      exit 962' >> /usr/bin/$RESTORE_SCRIPT_NAME
3041
-      echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3042
-      echo '    echo "Restarting database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3043
-      echo '    service mysql restart' >> /usr/bin/$RESTORE_SCRIPT_NAME
3044
-      echo '    echo "Change the MariaDB password to the backup version"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3045
-      echo '    DATABASE_PASSWORD=$BACKUP_MARIADB_PASSWORD' >> /usr/bin/$RESTORE_SCRIPT_NAME
3046
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3047
-      echo "  shred -zu /root/tempmariadb/${RESTORE_SUBDIR}tempmariadb/db" >> /usr/bin/$RESTORE_SCRIPT_NAME
3048
-      echo '  rm -rf /root/tempmariadb' >> /usr/bin/$RESTORE_SCRIPT_NAME
3049
-      echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3050
-      echo '  # Change database password file' >> /usr/bin/$RESTORE_SCRIPT_NAME
3051
-      echo -n '  echo "$DATABASE_PASSWORD" > ' >> /usr/bin/$RESTORE_SCRIPT_NAME
3052
-      echo "$DATABASE_PASSWORD_FILE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3053
-      echo "  chmod 600 $DATABASE_PASSWORD_FILE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3054
-      echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3055
-      echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3056
-  fi
3057
-
3058
-  RESTORE_SUBDIR='home/'
3059
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3060
-      RESTORE_SUBDIR='usb/backup/letsencrypt/'
3061
-  fi
3062
-  echo 'if [ -d $USB_MOUNT/backup/letsencrypt ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3063
-  echo '    echo "Restoring Lets Encrypt settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3064
-  echo '    restore_directory_from_usb / letsencrypt' >> /usr/bin/$RESTORE_SCRIPT_NAME
3065
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3066
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3067
-
3068
-  RESTORE_SUBDIR='home/'
3069
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3070
-      RESTORE_SUBDIR='usb/backup/mutt/'
3071
-  fi
3072
-  echo 'if [ -d $USB_MOUNT/backup/mutt ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3073
-  echo '  for d in $USB_MOUNT/backup/mutt/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3074
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3075
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3076
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3077
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3078
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3079
-  echo '      echo "Restoring Mutt settings for $USERNAME"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3080
-  echo '      restore_directory_from_usb /root/tempmutt mutt/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3081
-  echo -n "      if [ -f /root/tempmutt/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3082
-  echo '$USERNAME/tempbackup/.muttrc ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3083
-  echo -n "        cp -f /root/tempmutt/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3084
-  echo '$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc' >> /usr/bin/$RESTORE_SCRIPT_NAME
3085
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3086
-  echo -n "      if [ -f /root/tempmutt/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3087
-  echo '$USERNAME/tempbackup/Muttrc ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3088
-  echo -n "        cp -f /root/tempmutt/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3089
-  echo '$USERNAME/tempbackup/Muttrc /etc/Muttrc' >> /usr/bin/$RESTORE_SCRIPT_NAME
3090
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3091
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3092
-  echo '        umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3093
-  echo '        rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3094
-  echo '        rm -rf /root/tempmutt' >> /usr/bin/$RESTORE_SCRIPT_NAME
3095
-  echo '        exit 276' >> /usr/bin/$RESTORE_SCRIPT_NAME
3096
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3097
-  echo '      rm -rf /root/tempmutt' >> /usr/bin/$RESTORE_SCRIPT_NAME
3098
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3099
-  echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3100
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3101
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3102
-
3103
-  RESTORE_SUBDIR='home/'
3104
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3105
-      RESTORE_SUBDIR='usb/backup/gnupg/'
3106
-  fi
3107
-  echo 'if [ -d $USB_MOUNT/backup/gnupg ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3108
-  echo '  for d in $USB_MOUNT/backup/gnupg/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3109
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3110
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3111
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3112
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3113
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3114
-  echo '      echo "Restoring gnupg settings for $USERNAME"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3115
-  echo '      restore_directory_from_usb /root/tempgnupg gnupg/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3116
-  echo -n "      cp -r /root/tempgnupg/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3117
-  echo '$USERNAME/.gnupg /home/$USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3118
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3119
-  echo '        umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3120
-  echo '        rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3121
-  echo '        rm -rf /root/tempgnupg' >> /usr/bin/$RESTORE_SCRIPT_NAME
3122
-  echo '        exit 276' >> /usr/bin/$RESTORE_SCRIPT_NAME
3123
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3124
-  echo '      rm -rf /root/tempgnupg' >> /usr/bin/$RESTORE_SCRIPT_NAME
3125
-  echo '      if [[ "$USERNAME" == "$MY_USERNAME" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3126
-  echo '        cp -r /home/$USERNAME/.gnupg /root' >> /usr/bin/$RESTORE_SCRIPT_NAME
3127
-  echo '        if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3128
-  echo '          umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3129
-  echo '          rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3130
-  echo '          exit 283' >> /usr/bin/$RESTORE_SCRIPT_NAME
3131
-  echo '        fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3132
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3133
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3134
-  echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3135
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3136
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3137
-
3138
-  RESTORE_SUBDIR='home/'
3139
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3140
-      RESTORE_SUBDIR='usb/backup/procmail/'
3141
-  fi
3142
-  echo 'if [ -d $USB_MOUNT/backup/procmail ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3143
-  echo '  for d in $USB_MOUNT/backup/procmail/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3144
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3145
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3146
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3147
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3148
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3149
-  echo '      echo "Restoring procmail settings for $USERNAME"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3150
-  echo '      restore_directory_from_usb /root/tempprocmail procmail/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3151
-  echo -n "      cp -f /root/tempprocmail/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3152
-  echo '$USERNAME/tempbackup/.procmailrc /home/$USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3153
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3154
-  echo '        umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3155
-  echo '        rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3156
-  echo '        rm -rf /root/tempprocmail' >> /usr/bin/$RESTORE_SCRIPT_NAME
3157
-  echo '        exit 276' >> /usr/bin/$RESTORE_SCRIPT_NAME
3158
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3159
-  echo '      rm -rf /root/tempprocmail' >> /usr/bin/$RESTORE_SCRIPT_NAME
3160
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3161
-  echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3162
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3163
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3164
-
3165
-  RESTORE_SUBDIR='home/'
3166
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3167
-      RESTORE_SUBDIR='usb/backup/spamassassin/'
3168
-  fi
3169
-  echo 'if [ -d $USB_MOUNT/backup/spamassassin ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3170
-  echo '  for d in $USB_MOUNT/backup/spamassassin/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3171
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3172
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3173
-  echo '      if [ -d $USB_MOUNT/backup/spamassassin/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3174
-  echo '        if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3175
-  echo '            freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3176
-  echo '        fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3177
-  echo '        echo "Restoring spamassassin settings for $USERNAME"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3178
-  echo '        restore_directory_from_usb /root/tempspamassassin spamassassin/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3179
-  echo -n "        cp -rf /root/tempspamassassin/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3180
-  echo '$USERNAME/.spamassassin /home/$USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3181
-  echo '        if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3182
-  echo '          umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3183
-  echo '          rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3184
-  echo '          rm -rf /root/tempspamassassin' >> /usr/bin/$RESTORE_SCRIPT_NAME
3185
-  echo '          exit 276' >> /usr/bin/$RESTORE_SCRIPT_NAME
3186
-  echo '        fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3187
-  echo '        rm -rf /root/tempspamassassin' >> /usr/bin/$RESTORE_SCRIPT_NAME
3188
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3189
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3190
-  echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3191
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3192
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3193
-
3194
-  RESTORE_SUBDIR='home/'
3195
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3196
-      RESTORE_SUBDIR='usb/backup/readme/'
3197
-  fi
3198
-  echo 'if [ -d $USB_MOUNT/backup/readme ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3199
-  echo '  echo "Restoring README"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3200
-  echo '  restore_directory_from_usb /root/tempreadme readme' >> /usr/bin/$RESTORE_SCRIPT_NAME
3201
-  echo -n "  cp -f /root/tempreadme/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3202
-  echo '$MY_USERNAME/tempbackup/README /home/$MY_USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3203
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3204
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3205
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3206
-  echo '    rm -rf /root/tempreadme' >> /usr/bin/$RESTORE_SCRIPT_NAME
3207
-  echo '    exit 276' >> /usr/bin/$RESTORE_SCRIPT_NAME
3208
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3209
-  echo '  rm -rf /root/tempreadme' >> /usr/bin/$RESTORE_SCRIPT_NAME
3210
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3211
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3212
-
3213
-  RESTORE_SUBDIR='home/'
3214
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3215
-      RESTORE_SUBDIR='usb/backup/ipfs/'
3216
-  fi
3217
-  echo 'if [ -d $USB_MOUNT/backup/ipfs ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3218
-  echo '  echo "Restoring IPFS"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3219
-  echo '  restore_directory_from_usb /root/tempipfs ipfs' >> /usr/bin/$RESTORE_SCRIPT_NAME
3220
-  echo -n "  cp -rf /root/tempipfs/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3221
-  echo '$MY_USERNAME/.ipfs/* /home/$MY_USERNAME/.ipfs' >> /usr/bin/$RESTORE_SCRIPT_NAME
3222
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3223
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3224
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3225
-  echo '    rm -rf /root/tempipfs' >> /usr/bin/$RESTORE_SCRIPT_NAME
3226
-  echo '    exit 276' >> /usr/bin/$RESTORE_SCRIPT_NAME
3227
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3228
-  echo '  rm -rf /root/tempipfs' >> /usr/bin/$RESTORE_SCRIPT_NAME
3229
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3230
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3231
-
3232
-  RESTORE_SUBDIR='home/'
3233
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3234
-      RESTORE_SUBDIR='usb/backup/ssh/'
3235
-  fi
3236
-  echo 'if [ -d $USB_MOUNT/backup/ssh ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3237
-  echo '  for d in $USB_MOUNT/backup/ssh/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3238
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3239
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3240
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3241
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3242
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3243
-  echo '      echo "Restoring ssh keys for $USERNAME"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3244
-  echo '      restore_directory_from_usb /root/tempssh ssh/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3245
-  echo -n "      cp -r /root/tempssh/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3246
-  echo '$USERNAME/.ssh /home/$USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3247
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3248
-  echo '        umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3249
-  echo '        rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3250
-  echo '        rm -rf /root/tempssh' >> /usr/bin/$RESTORE_SCRIPT_NAME
3251
-  echo '        exit 664' >> /usr/bin/$RESTORE_SCRIPT_NAME
3252
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3253
-  echo '      rm -rf /root/tempssh' >> /usr/bin/$RESTORE_SCRIPT_NAME
3254
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3255
-  echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3256
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3257
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3258
-
3259
-  RESTORE_SUBDIR='home/'
3260
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3261
-      RESTORE_SUBDIR='usb/backup/config/'
3262
-  fi
3263
-  echo 'if [ -d $USB_MOUNT/backup/config ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3264
-  echo '  for d in $USB_MOUNT/backup/config/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3265
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3266
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3267
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3268
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3269
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3270
-  echo '      echo "Restoring config files for $USERNAME"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3271
-  echo '      restore_directory_from_usb /root/tempconfig config/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3272
-  echo -n "      cp -r /root/tempconfig/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3273
-  echo '$USERNAME/.config /home/$USERNAME/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3274
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3275
-  echo '        umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3276
-  echo '        rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3277
-  echo '        rm -rf /root/tempconfig' >> /usr/bin/$RESTORE_SCRIPT_NAME
3278
-  echo '        exit 664' >> /usr/bin/$RESTORE_SCRIPT_NAME
3279
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3280
-  echo '      rm -rf /root/tempconfig' >> /usr/bin/$RESTORE_SCRIPT_NAME
3281
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3282
-  echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3283
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3284
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3285
-
3286
-  RESTORE_SUBDIR='etc/'
3287
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3288
-      RESTORE_SUBDIR='usb/backup/ssl/'
3289
-  fi
3290
-  echo 'if [ -d $USB_MOUNT/backup/ssl ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3291
-  echo '  echo "Restoring certificates"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3292
-  echo '  mkdir /root/tempssl' >> /usr/bin/$RESTORE_SCRIPT_NAME
3293
-  echo '  restore_directory_from_usb /root/tempssl ssl' >> /usr/bin/$RESTORE_SCRIPT_NAME
3294
-  echo "  cp -r /root/tempssl/${RESTORE_SUBDIR}ssl/* /etc/ssl" >> /usr/bin/$RESTORE_SCRIPT_NAME
3295
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3296
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3297
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3298
-  echo '    exit 276' >> /usr/bin/$RESTORE_SCRIPT_NAME
3299
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3300
-  echo '  rm -rf /root/tempssl' >> /usr/bin/$RESTORE_SCRIPT_NAME
3301
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3302
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3303
-
3304
-  RESTORE_SUBDIR='home/'
3305
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3306
-      RESTORE_SUBDIR='usb/backup/projects/'
3307
-  fi
3308
-  echo 'if [ -d $USB_MOUNT/backup/projects ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3309
-  echo '  for d in $USB_MOUNT/backup/projects/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3310
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3311
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3312
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3313
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3314
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3315
-  echo '      echo "Restoring projects for $USERNAME"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3316
-  echo '      restore_directory_from_usb /root/tempprojects projects/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3317
-  echo '      if [ -d /home/$USERNAME/projects ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3318
-  echo '        rm -rf /home/$USERNAME/projects' >> /usr/bin/$RESTORE_SCRIPT_NAME
3319
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3320
-  echo -n "      mv /root/tempprojects/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3321
-  echo '$USERNAME/projects /home/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3322
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3323
-  echo '        umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3324
-  echo '        rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3325
-  echo '        exit 166' >> /usr/bin/$RESTORE_SCRIPT_NAME
3326
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3327
-  echo '      rm -rf /root/tempprojects' >> /usr/bin/$RESTORE_SCRIPT_NAME
3328
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3329
-  echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3330
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3331
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3332
-
3333
-  RESTORE_SUBDIR='home/'
3334
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3335
-      RESTORE_SUBDIR='usb/backup/personal/'
3336
-  fi
3337
-  echo 'if [ -d $USB_MOUNT/backup/personal ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3338
-  echo '  for d in $USB_MOUNT/backup/personal/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3339
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3340
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3341
-  echo '      if [ -d $USB_MOUNT/backup/personal/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3342
-  echo '        if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3343
-  echo '            freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3344
-  echo '        fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3345
-  echo '        echo "Restoring personal settings for $USERNAME"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3346
-  echo '        restore_directory_from_usb /root/temppersonal personal/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3347
-  echo '        if [ -d /home/$USERNAME/personal ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3348
-  echo '          rm -rf /home/$USERNAME/personal' >> /usr/bin/$RESTORE_SCRIPT_NAME
3349
-  echo '        fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3350
-  echo -n "        mv /root/temppersonal/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_SCRIPT_NAME
3351
-  echo '$USERNAME/personal /home/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3352
-  echo '        if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3353
-  echo '          umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3354
-  echo '          rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3355
-  echo '          exit 184' >> /usr/bin/$RESTORE_SCRIPT_NAME
3356
-  echo '        fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3357
-  echo '        rm -rf /root/temppersonal' >> /usr/bin/$RESTORE_SCRIPT_NAME
3358
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3359
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3360
-  echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3361
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3362
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3363
-
3364
-  RESTORE_SUBDIR='root/'
3365
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3366
-      RESTORE_SUBDIR='usb/backup/mailinglist/'
3367
-  fi
3368
-  echo "if [ -d $PUBLIC_MAILING_LIST_DIRECTORY ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3369
-  echo '  echo "Restoring public mailing list"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3370
-  echo '  restore_directory_from_usb /root/tempmailinglist mailinglist' >> /usr/bin/$RESTORE_SCRIPT_NAME
3371
-  echo "  cp -r /root/tempmailinglist/${RESTORE_SUBDIR}spool/mlmmj/* $PUBLIC_MAILING_LIST_DIRECTORY" >> /usr/bin/$RESTORE_SCRIPT_NAME
3372
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3373
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3374
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3375
-  echo '    exit 526' >> /usr/bin/$RESTORE_SCRIPT_NAME
3376
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3377
-  echo '  rm -rf /root/tempmailinglist' >> /usr/bin/$RESTORE_SCRIPT_NAME
3378
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3379
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3380
-
3381
-  RESTORE_SUBDIR='var/'
3382
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3383
-      RESTORE_SUBDIR='usb/backup/xmpp/'
3384
-  fi
3385
-  echo "if [ -d $XMPP_DIRECTORY ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3386
-  echo '  echo "Restoring XMPP settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3387
-  echo '  restore_directory_from_usb /root/tempxmpp xmpp' >> /usr/bin/$RESTORE_SCRIPT_NAME
3388
-  echo "  cp -r /root/tempxmpp/${RESTORE_SUBDIR}lib/prosody/* $XMPP_DIRECTORY" >> /usr/bin/$RESTORE_SCRIPT_NAME
3389
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3390
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3391
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3392
-  echo '    exit 725' >> /usr/bin/$RESTORE_SCRIPT_NAME
3393
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3394
-  echo '  rm -rf /root/tempxmpp' >> /usr/bin/$RESTORE_SCRIPT_NAME
3395
-  echo '  service prosody restart' >> /usr/bin/$RESTORE_SCRIPT_NAME
3396
-  echo '  chown -R prosody:prosody /var/lib/prosody/*' >> /usr/bin/$RESTORE_SCRIPT_NAME
3397
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3398
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3399
-
3400
-  BACKUP_INCLUDES_WEBSITES="no"
3401
-
3402
-  if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
3403
-      BACKUP_INCLUDES_WEBSITES="yes"
3404
-      echo "restore_database gnusocial $MICROBLOG_DOMAIN_NAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3405
-      echo 'if [ -d /root/tempgnusocial ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3406
-      echo '  rm -rf /root/tempgnusocial' >> /usr/bin/$RESTORE_SCRIPT_NAME
3407
-      echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3408
-  fi
3409
-
3410
-  if grep -Fxq "install_hubzilla" $COMPLETION_FILE; then
3411
-      BACKUP_INCLUDES_WEBSITES="yes"
3412
-      echo "restore_database hubzilla $HUBZILLA_DOMAIN_NAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3413
-      echo 'if [ -d $USB_MOUNT/backup/hubzilla ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3414
-      echo "  if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3 ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3415
-      echo "    mkdir -p /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3" >> /usr/bin/$RESTORE_SCRIPT_NAME
3416
-      echo "  fi" >> /usr/bin/$RESTORE_SCRIPT_NAME
3417
-      echo "  chmod 777 /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3" >> /usr/bin/$RESTORE_SCRIPT_NAME
3418
-      echo "  chown -R www-data:www-data /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/*" >> /usr/bin/$RESTORE_SCRIPT_NAME
3419
-      echo '  if [ -d /root/temphubzilla ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3420
-      echo '    rm -rf /root/temphubzilla' >> /usr/bin/$RESTORE_SCRIPT_NAME
3421
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3422
-      echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3423
-      echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3424
-  fi
3425
-
3426
-  if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
3427
-      BACKUP_INCLUDES_WEBSITES="yes"
3428
-      echo "restore_database owncloud $OWNCLOUD_DOMAIN_NAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3429
-      echo 'if [ -d $USB_MOUNT/backup/owncloud2 ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3430
-      echo 'restore_directory_from_usb /root/tempowncloud2 owncloud2' >> /usr/bin/$RESTORE_SCRIPT_NAME
3431
-      RESTORE_SUBDIR='etc/'
3432
-      if [[ $BACKUP_TYPE != 'obnam' ]]; then
3433
-          RESTORE_SUBDIR='usb/backup/owncloud2/'
3434
-      fi
3435
-      echo "  cp -r /root/tempowncloud2/${RESTORE_SUBDIR}owncloud/* /etc/owncloud/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3436
-      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3437
-      echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3438
-      echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3439
-      echo '    exit 982' >> /usr/bin/$RESTORE_SCRIPT_NAME
3440
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3441
-      echo '  rm -rf /root/tempowncloud' >> /usr/bin/$RESTORE_SCRIPT_NAME
3442
-      echo '  rm -rf /root/tempowncloud2' >> /usr/bin/$RESTORE_SCRIPT_NAME
3443
-      echo '  chown -R www-data:www-data /var/lib/owncloud/data' >> /usr/bin/$RESTORE_SCRIPT_NAME
3444
-      echo '  chown -R www-data:www-data /var/lib/owncloud/backup' >> /usr/bin/$RESTORE_SCRIPT_NAME
3445
-      echo '  chown -R www-data:www-data /var/lib/owncloud/assets' >> /usr/bin/$RESTORE_SCRIPT_NAME
3446
-      echo '  for d in /home/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3447
-      echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3448
-      echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3449
-      echo '      occ files:scan $USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3450
-      echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3451
-      echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3452
-      echo "  ln -s /usr/share/owncloud /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs" >> /usr/bin/$RESTORE_SCRIPT_NAME
3453
-      echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3454
-      echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3455
-  fi
3456
-
3457
-  if grep -Fxq "install_gogs" $COMPLETION_FILE; then
3458
-      BACKUP_INCLUDES_WEBSITES="yes"
3459
-      echo "restore_database gogs $GIT_DOMAIN_NAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3460
-      RESTORE_SUBDIR='home'
3461
-      if [[ $BACKUP_TYPE != 'obnam' ]]; then
3462
-          RESTORE_SUBDIR='usb/backup/gogs'
3463
-      fi
3464
-      echo 'if [ -d $USB_MOUNT/backup/gogs ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3465
-      echo '  echo "Restoring Gogs settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3466
-      echo '  if [ ! -d /home/git/go/src/github.com/gogits/gogs/custom ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3467
-      echo '    mkdir -p /home/git/go/src/github.com/gogits/gogs/custom' >> /usr/bin/$RESTORE_SCRIPT_NAME
3468
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3469
-      echo "  cp -r /root/tempgogs/${RESTORE_SUBDIR}/git/go/src/github.com/gogits/gogs/custom/* /home/git/go/src/github.com/gogits/gogs/custom" >> /usr/bin/$RESTORE_SCRIPT_NAME
3470
-      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3471
-      echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3472
-      echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3473
-      echo '    exit 981' >> /usr/bin/$RESTORE_SCRIPT_NAME
3474
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3475
-      echo '  echo "Restoring Gogs repos"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3476
-      echo 'restore_directory_from_usb /root/tempgogsrepos gogsrepos' >> /usr/bin/$RESTORE_SCRIPT_NAME
3477
-      if [[ $BACKUP_TYPE != 'obnam' ]]; then
3478
-          RESTORE_SUBDIR='usb/backup/gogsrepos'
3479
-      fi
3480
-      echo "  cp -r /root/tempgogsrepos/${RESTORE_SUBDIR}/git/gogs-repositories/* /home/git/gogs-repositories/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3481
-      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3482
-      echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3483
-      echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3484
-      echo '    exit 67574' >> /usr/bin/$RESTORE_SCRIPT_NAME
3485
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3486
-      echo '  echo "Restoring Gogs authorized_keys"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3487
-      echo '  restore_directory_from_usb /root/tempgogsssh gogsssh' >> /usr/bin/$RESTORE_SCRIPT_NAME
3488
-      echo '  if [ ! -d /home/git/.ssh ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3489
-      echo '    mkdir /home/git/.ssh' >> /usr/bin/$RESTORE_SCRIPT_NAME
3490
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3491
-      if [[ $BACKUP_TYPE != 'obnam' ]]; then
3492
-          RESTORE_SUBDIR='usb/backup/gogsssh'
3493
-      fi
3494
-      echo "  cp -r /root/tempgogsssh/${RESTORE_SUBDIR}/git/.ssh/* /home/git/.ssh/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3495
-      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3496
-      echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3497
-      echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3498
-      echo '    exit 8463' >> /usr/bin/$RESTORE_SCRIPT_NAME
3499
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3500
-      echo '  rm -rf /root/tempgogs' >> /usr/bin/$RESTORE_SCRIPT_NAME
3501
-      echo '  rm -rf /root/tempgogsrepos' >> /usr/bin/$RESTORE_SCRIPT_NAME
3502
-      echo '  rm -rf /root/tempgogsssh' >> /usr/bin/$RESTORE_SCRIPT_NAME
3503
-      echo '  chown -R git:git /home/git' >> /usr/bin/$RESTORE_SCRIPT_NAME
3504
-      echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3505
-      echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3506
-  fi
3507
-
3508
-  RESTORE_SUBDIR='var'
3509
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3510
-      RESTORE_SUBDIR='usb/backup/wiki'
3511
-  fi
3512
-  echo 'if [ -d $USB_MOUNT/backup/wiki ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3513
-  echo '  echo "Restoring Wiki installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3514
-  echo '  restore_directory_from_usb /root/tempwiki wiki' >> /usr/bin/$RESTORE_SCRIPT_NAME
3515
-  echo "  cp -r /root/tempwiki/${RESTORE_SUBDIR}/lib/dokuwiki/* /var/lib/dokuwiki/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3516
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3517
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3518
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3519
-  echo '    exit 868' >> /usr/bin/$RESTORE_SCRIPT_NAME
3520
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3521
-  echo '  restore_directory_from_usb /root/tempwiki2 wiki2' >> /usr/bin/$RESTORE_SCRIPT_NAME
3522
-  RESTORE_SUBDIR='etc'
3523
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3524
-      RESTORE_SUBDIR='usb/backup/wiki2'
3525
-  fi
3526
-  echo "  cp -r /root/tempwiki2/${RESTORE_SUBDIR}/dokuwiki/* /etc/dokuwiki/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3527
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3528
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3529
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3530
-  echo '    exit 869' >> /usr/bin/$RESTORE_SCRIPT_NAME
3531
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3532
-  echo '  rm -rf /root/tempwiki' >> /usr/bin/$RESTORE_SCRIPT_NAME
3533
-  echo '  rm -rf /root/tempwiki2' >> /usr/bin/$RESTORE_SCRIPT_NAME
3534
-  echo '  chown -R www-data:www-data /var/lib/dokuwiki/*' >> /usr/bin/$RESTORE_SCRIPT_NAME
3535
-  echo '  # Ensure that the bundled SSL cert is being used' >> /usr/bin/$RESTORE_SCRIPT_NAME
3536
-  echo "  if [ -f /etc/ssl/certs/$WIKI_DOMAIN_NAME.bundle.crt ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3537
-  echo "    sed -i 's|$WIKI_DOMAIN_NAME.crt|$WIKI_DOMAIN_NAME.bundle.crt|g' /etc/nginx/sites-available/$WIKI_DOMAIN_NAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3538
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3539
-  echo "  if [ -d /etc/letsencrypt/live/${WIKI_DOMAIN_NAME} ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3540
-  echo "      ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${WIKI_DOMAIN_NAME}.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3541
-  echo "      ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${WIKI_DOMAIN_NAME}.pem" >> /usr/bin/$RESTORE_SCRIPT_NAME
3542
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3543
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3544
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3545
-
3546
-  RESTORE_SUBDIR='var'
3547
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3548
-      RESTORE_SUBDIR='usb/backup/blog'
3549
-  fi
3550
-  echo 'if [ -d $USB_MOUNT/backup/blog ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3551
-  echo '  echo "Restoring blog installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3552
-  echo '  restore_directory_from_usb /root/tempblog blog' >> /usr/bin/$RESTORE_SCRIPT_NAME
3553
-  echo "  rm -rf /var/www/$FULLBLOG_DOMAIN_NAME/htdocs" >> /usr/bin/$RESTORE_SCRIPT_NAME
3554
-  echo "  cp -r /root/tempblog/${RESTORE_SUBDIR}/www/$FULLBLOG_DOMAIN_NAME/htdocs /var/www/$FULLBLOG_DOMAIN_NAME/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3555
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3556
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3557
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3558
-  echo '    exit 593' >> /usr/bin/$RESTORE_SCRIPT_NAME
3559
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3560
-  echo '  rm -rf /root/tempblog' >> /usr/bin/$RESTORE_SCRIPT_NAME
3561
-  echo "  if [ ! -d /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/content ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3562
-  echo '    echo "No content directory found after restoring blog"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3563
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3564
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3565
-  echo '    exit 287' >> /usr/bin/$RESTORE_SCRIPT_NAME
3566
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3567
-  echo "  chown -R www-data:www-data /var/www/$FULLBLOG_DOMAIN_NAME/htdocs" >> /usr/bin/$RESTORE_SCRIPT_NAME
3568
-  echo '  # Ensure that the bundled SSL cert is being used' >> /usr/bin/$RESTORE_SCRIPT_NAME
3569
-  echo "  if [ -f /etc/ssl/certs/$FULLBLOG_DOMAIN_NAME.bundle.crt ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3570
-  echo "    sed -i 's|$FULLBLOG_DOMAIN_NAME.crt|$FULLBLOG_DOMAIN_NAME.bundle.crt|g' /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3571
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3572
-  echo '  for d in /home/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3573
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3574
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3575
-  echo -n "      if [ -d /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/content" >> /usr/bin/$RESTORE_SCRIPT_NAME
3576
-  echo '/$USERNAME/blog/uncategorized/post ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3577
-  echo -n "        mv /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/content" >> /usr/bin/$RESTORE_SCRIPT_NAME
3578
-  echo -n '/$USERNAME/blog/*.md ' >> /usr/bin/$RESTORE_SCRIPT_NAME
3579
-  echo -n "/var/www/$FULLBLOG_DOMAIN_NAME/htdocs/content" >> /usr/bin/$RESTORE_SCRIPT_NAME
3580
-  echo '/$USERNAME/blog/uncategorized/post ' >> /usr/bin/$RESTORE_SCRIPT_NAME
3581
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3582
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3583
-  echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3584
-  echo "  if [ -d /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME} ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3585
-  echo "      ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${FULLBLOG_DOMAIN_NAME}.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3586
-  echo "      ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.pem" >> /usr/bin/$RESTORE_SCRIPT_NAME
3587
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3588
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3589
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3590
-
3591
-  RESTORE_SUBDIR='etc'
3592
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3593
-      RESTORE_SUBDIR='usb/backup/cjdns'
3594
-  fi
3595
-  echo 'if [ -d $USB_MOUNT/backup/cjdns ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3596
-  echo '  echo "Restoring cjdns installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3597
-  echo '  restore_directory_from_usb /root/tempcjdns cjdns' >> /usr/bin/$RESTORE_SCRIPT_NAME
3598
-  echo "  rm -rf /etc/cjdns" >> /usr/bin/$RESTORE_SCRIPT_NAME
3599
-  echo "  cp -r /root/tempcjdns/${RESTORE_SUBDIR}/cjdns /etc/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3600
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3601
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3602
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3603
-  echo '    exit 8472' >> /usr/bin/$RESTORE_SCRIPT_NAME
3604
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3605
-  echo '  rm -rf /root/tempcjdns' >> /usr/bin/$RESTORE_SCRIPT_NAME
3606
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3607
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3608
-
3609
-  RESTORE_SUBDIR='root'
3610
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3611
-      RESTORE_SUBDIR='usb/backup/mail'
3612
-  fi
3613
-  echo 'if [ -d $USB_MOUNT/backup/mail ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3614
-  echo '  for d in $USB_MOUNT/backup/mail/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3615
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3616
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3617
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3618
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3619
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3620
-  echo '      echo "Restoring emails for $USERNAME"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3621
-  echo '      restore_directory_from_usb /root/tempmail mail/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3622
-  echo '      if [ ! -d /home/$USERNAME/Maildir ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3623
-  echo '        mkdir /home/$USERNAME/Maildir' >> /usr/bin/$RESTORE_SCRIPT_NAME
3624
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3625
-  echo -n "      tar -xzvf /root/tempmail/${RESTORE_SUBDIR}/tempbackupemail/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3626
-  echo '$USERNAME/maildir.tar.gz -C /' >> /usr/bin/$RESTORE_SCRIPT_NAME
3627
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3628
-  echo '        umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3629
-  echo '        rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3630
-  echo '        exit 927' >> /usr/bin/$RESTORE_SCRIPT_NAME
3631
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3632
-  echo '      rm -rf /root/tempmail' >> /usr/bin/$RESTORE_SCRIPT_NAME
3633
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3634
-  echo '  done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3635
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3636
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3637
-
3638
-  RESTORE_SUBDIR='var'
3639
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3640
-      RESTORE_SUBDIR='usb/backup/dlna'
3641
-  fi
3642
-  echo "if [ -d /var/cache/minidlna ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3643
-  echo '  if [ -d $USB_MOUNT/backup/dlna ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3644
-  echo '    echo "Restoring DLNA cache"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3645
-  echo '    restore_directory_from_usb /root/tempdlna dlna' >> /usr/bin/$RESTORE_SCRIPT_NAME
3646
-  echo "    cp -r /root/tempdlna/${RESTORE_SUBDIR}/cache/minidlna/* /var/cache/minidlna/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3647
-  echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3648
-  echo '      umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3649
-  echo '      rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3650
-  echo '      exit 982' >> /usr/bin/$RESTORE_SCRIPT_NAME
3651
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3652
-  echo '    rm -rf /root/tempdlna' >> /usr/bin/$RESTORE_SCRIPT_NAME
3653
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3654
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3655
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3656
-
3657
-  echo 'if [ -d $USB_MOUNT/backup/voip ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3658
-  echo '  echo "Restoring VoIP settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3659
-  echo '  restore_directory_from_usb /root/tempvoip voip' >> /usr/bin/$RESTORE_SCRIPT_NAME
3660
-  RESTORE_SUBDIR='home'
3661
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3662
-      RESTORE_SUBDIR='usb/backup/voip'
3663
-  fi
3664
-  echo -n "  cp -f /root/tempvoip/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3665
-  echo -n '$MY_USERNAME/tempbackup/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3666
-  echo "$VOIP_CONFIG_FILE /etc/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3667
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3668
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3669
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3670
-  echo '    rm -rf /root/tempvoip' >> /usr/bin/$RESTORE_SCRIPT_NAME
3671
-  echo '    exit 3679' >> /usr/bin/$RESTORE_SCRIPT_NAME
3672
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3673
-  echo -n "  cp -f /root/tempvoip/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3674
-  echo -n '$MY_USERNAME/tempbackup/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3675
-  echo 'sipwitch.conf /etc/sipwitch.conf' >> /usr/bin/$RESTORE_SCRIPT_NAME
3676
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3677
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3678
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3679
-  echo '    rm -rf /root/tempvoip' >> /usr/bin/$RESTORE_SCRIPT_NAME
3680
-  echo '    exit 3679' >> /usr/bin/$RESTORE_SCRIPT_NAME
3681
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3682
-  echo -n "  cp -f /root/tempvoip/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3683
-  echo -n '$MY_USERNAME/tempbackup/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3684
-  echo "$VOIP_DATABASE /var/lib/mumble-server/" >> /usr/bin/$RESTORE_SCRIPT_NAME
3685
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3686
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3687
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3688
-  echo '    rm -rf /root/tempvoip' >> /usr/bin/$RESTORE_SCRIPT_NAME
3689
-  echo '    exit 276' >> /usr/bin/$RESTORE_SCRIPT_NAME
3690
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3691
-  echo '  rm -rf /root/tempvoip' >> /usr/bin/$RESTORE_SCRIPT_NAME
3692
-  echo '  cp /etc/ssl/certs/mumble* /var/lib/mumble-server' >> /usr/bin/$RESTORE_SCRIPT_NAME
3693
-  echo '  cp /etc/ssl/private/mumble* /var/lib/mumble-server' >> /usr/bin/$RESTORE_SCRIPT_NAME
3694
-  echo '  chown -R mumble-server:mumble-server /var/lib/mumble-server' >> /usr/bin/$RESTORE_SCRIPT_NAME
3695
-  echo '  service sipwitch restart' >> /usr/bin/$RESTORE_SCRIPT_NAME
3696
-  echo '  service mumble-server restart' >> /usr/bin/$RESTORE_SCRIPT_NAME
3697
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3698
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3699
-
3700
-  echo 'if [ -d $USB_MOUNT/backup/tox ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3701
-  echo '  echo "Restoring Tox node settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3702
-  echo '  restore_directory_from_usb / tox' >> /usr/bin/$RESTORE_SCRIPT_NAME
3703
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3704
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3705
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3706
-  echo '    exit 6393' >> /usr/bin/$RESTORE_SCRIPT_NAME
3707
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3708
-  echo '  cp /var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf' >> /usr/bin/$RESTORE_SCRIPT_NAME
3709
-  echo '  systemctl restart tox-bootstrapd.service' >> /usr/bin/$RESTORE_SCRIPT_NAME
3710
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3711
-  echo '    systemctl status tox-bootstrapd.service' >> /usr/bin/$RESTORE_SCRIPT_NAME
3712
-  echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3713
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3714
-  echo '    exit 59369' >> /usr/bin/$RESTORE_SCRIPT_NAME
3715
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3716
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3717
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3718
-
3719
-  echo 'sync' >> /usr/bin/$RESTORE_SCRIPT_NAME
3720
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3721
-  echo "# Unmount the USB drive" >> /usr/bin/$RESTORE_SCRIPT_NAME
3722
-  echo 'umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3723
-  echo 'rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3724
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3725
-  if [[ $BACKUP_INCLUDES_WEBSITES == "yes" ]]; then
3726
-      echo "# Restart the web server" >> /usr/bin/$RESTORE_SCRIPT_NAME
3727
-      echo "service nginx restart" >> /usr/bin/$RESTORE_SCRIPT_NAME
3728
-      echo "service php5-fpm restart" >> /usr/bin/$RESTORE_SCRIPT_NAME
3729
-  fi
3730
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3731
-  echo 'echo "Setting permissions"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3732
-  echo 'for d in /home/*/ ; do' >> /usr/bin/$RESTORE_SCRIPT_NAME
3733
-  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/$RESTORE_SCRIPT_NAME
3734
-  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3735
-  echo '    chown -R $USERNAME:$USERNAME /home/$USERNAME' >> /usr/bin/$RESTORE_SCRIPT_NAME
3736
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3737
-  echo 'done' >> /usr/bin/$RESTORE_SCRIPT_NAME
3738
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3739
-
3740
-  echo 'if [[ $USB_DRIVE == /dev/mapper/encrypted_usb ]]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3741
-  echo '  echo "Unmount encrypted USB"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3742
-  echo '  cryptsetup luksClose encrypted_usb' >> /usr/bin/$RESTORE_SCRIPT_NAME
3743
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3744
-  echo 'if [ -f /dev/mapper/encrypted_usb ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3745
-  echo '  rm -rf /dev/mapper/encrypted_usb' >> /usr/bin/$RESTORE_SCRIPT_NAME
3746
-  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3747
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3748
-
3749
-  echo 'echo "Restore from USB drive is complete. You can now remove it."' >> /usr/bin/$RESTORE_SCRIPT_NAME
3750
-  echo 'exit 0' >> /usr/bin/$RESTORE_SCRIPT_NAME
3751
-  chmod 400 /usr/bin/$RESTORE_SCRIPT_NAME
3752
-  chmod +x /usr/bin/$RESTORE_SCRIPT_NAME
3753
-
3754
-  echo 'create_restore_script' >> $COMPLETION_FILE
3755
-}
3756
-
3757 2892
 function create_restore_hubzilla_script {
3758 2893
   if grep -Fxq "create_restore_hubzilla_script" $COMPLETION_FILE; then
3759 2894
       return
@@ -7988,7 +7123,6 @@ function import_email {
7988 7123
 '
7989 7124
   if grep -Fxq "import_email" $COMPLETION_FILE; then
7990 7125
       if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
7991
-          create_restore_script
7992 7126
           backup_to_friends_servers
7993 7127
           intrusion_detection
7994 7128
           split_gpg_key_into_fragments
@@ -8016,7 +7150,6 @@ function import_email {
8016 7150
   fi
8017 7151
   echo 'import_email' >> $COMPLETION_FILE
8018 7152
   if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
8019
-      create_restore_script
8020 7153
       backup_to_friends_servers
8021 7154
       intrusion_detection
8022 7155
       split_gpg_key_into_fragments
@@ -8445,7 +7578,6 @@ function install_owncloud {
8445 7578
   if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
8446 7579
       if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
8447 7580
           install_owncloud_music_app
8448
-          create_restore_script
8449 7581
           backup_to_friends_servers
8450 7582
           intrusion_detection
8451 7583
           split_gpg_key_into_fragments
@@ -8676,11 +7808,11 @@ quit" > $INSTALL_DIR/batch.sql
8676 7808
   CURRENT_DDNS_DOMAIN=$OWNCLOUD_DOMAIN_NAME
8677 7809
   add_ddns_domain
8678 7810
 
7811
+  echo "Owncloud domain:$$OWNCLOUD_DOMAIN_NAME" >> $COMPLETION_FILE
8679 7812
   echo 'install_owncloud' >> $COMPLETION_FILE
8680 7813
 
8681 7814
   if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
8682 7815
       install_owncloud_music_app
8683
-      create_restore_script
8684 7816
       backup_to_friends_servers
8685 7817
       intrusion_detection
8686 7818
       split_gpg_key_into_fragments
@@ -8930,6 +8062,7 @@ quit" > $INSTALL_DIR/batch.sql
8930 8062
   CURRENT_DDNS_DOMAIN=$GIT_DOMAIN_NAME
8931 8063
   add_ddns_domain
8932 8064
 
8065
+  echo "Gogs domain:$GIT_DOMAIN_NAME" >> $COMPLETION_FILE
8933 8066
   echo 'install_gogs' >> $COMPLETION_FILE
8934 8067
 }
8935 8068
 
@@ -9707,6 +8840,7 @@ function install_wiki {
9707 8840
       chmod 600 /home/$MY_USERNAME/README
9708 8841
   fi
9709 8842
 
8843
+  echo "Wiki domain:$WIKI_DOMAIN_NAME" >> $COMPLETION_FILE
9710 8844
   echo 'install_wiki' >> $COMPLETION_FILE
9711 8845
 }
9712 8846
 
@@ -11640,7 +10774,6 @@ configure_firewall_for_dlna
11640 10774
 install_mediagoblin
11641 10775
 #install_ipfs
11642 10776
 repair_databases_script
11643
-create_restore_script
11644 10777
 create_restore_hubzilla_script
11645 10778
 backup_to_friends_servers
11646 10779
 restore_from_friend

+ 1
- 1
src/freedombone-backup-local Dosyayı Görüntüle

@@ -29,7 +29,7 @@
29 29
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
30 30
 
31 31
 PROJECT_NAME='freedombone'
32
-COMPLETION_FILE=$HOME/freedombone-completed.txt
32
+COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
33 33
 
34 34
 export TEXTDOMAIN=${PROJECT_NAME}-backup-local
35 35
 export TEXTDOMAINDIR="/usr/share/locale"

+ 735
- 0
src/freedombone-restore-local Dosyayı Görüntüle

@@ -0,0 +1,735 @@
1
+#!/bin/bash
2
+#
3
+# .---.                  .              .
4
+# |                      |              |
5
+# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
+# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
+# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
+#
9
+#                    Freedom in the Cloud
10
+#
11
+# Backup to local storage - typically a USB drive
12
+
13
+# License
14
+# =======
15
+#
16
+# Copyright (C) 2015 Bob Mottram <bob@robotics.uk.to>
17
+#
18
+# This program is free software: you can redistribute it and/or modify
19
+# it under the terms of the GNU General Public License as published by
20
+# the Free Software Foundation, either version 3 of the License, or
21
+# (at your option) any later version.
22
+#
23
+# This program is distributed in the hope that it will be useful,
24
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
25
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26
+# GNU General Public License for more details.
27
+#
28
+# You should have received a copy of the GNU General Public License
29
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
30
+
31
+PROJECT_NAME='freedombone'
32
+COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
33
+
34
+export TEXTDOMAIN=${PROJECT_NAME}-restore-local
35
+export TEXTDOMAINDIR="/usr/share/locale"
36
+
37
+USB_DRIVE=/dev/sdb1
38
+if [ $1 ]; then
39
+	USB_DRIVE=/dev/${1}1
40
+fi
41
+USB_MOUNT=/mnt/usb
42
+
43
+# Get the admin username
44
+ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
45
+if [ $2 ]; then
46
+	ADMIN_USERNAME=$2
47
+fi
48
+
49
+if [ ! -b $USB_DRIVE ]; then
50
+	echo $"Please attach a USB drive"
51
+	exit 1
52
+fi
53
+
54
+if [ ! -d $USB_MOUNT ]; then
55
+	mkdir $USB_MOUNT
56
+	if [ -f /dev/mapper/encrypted_usb ]; then
57
+		rm -rf /dev/mapper/encrypted_usb
58
+	fi
59
+	cryptsetup luksClose encrypted_usb
60
+	cryptsetup luksOpen $USB_DRIVE encrypted_usb
61
+	if [ "$?" = "0" ]; then
62
+		USB_DRIVE=/dev/mapper/encrypted_usb
63
+	fi
64
+	mount $USB_DRIVE $USB_MOUNT
65
+fi
66
+if [ ! -d $USB_MOUNT/backup ]; then
67
+	echo $"No backup directory found on the USB drive."
68
+	umount $USB_MOUNT
69
+	rm -rf $USB_MOUNT
70
+	exit 2
71
+fi
72
+
73
+echo $"Checking that admin user exists"
74
+if [ ! -d /home/$ADMIN_USERNAME ]; then
75
+	echo $"Username $ADMIN_USERNAME not found. Reinstall ${PROJECT_NAME} with this username."
76
+	umount $USB_MOUNT
77
+	rm -rf $USB_MOUNT
78
+	exit 295
79
+fi
80
+
81
+echo $"Copying GPG keys to root"
82
+cp -r /home/$ADMIN_USERNAME/.gnupg /root
83
+
84
+# MariaDB password
85
+DATABASE_PASSWORD=$(cat /root/dbpass)
86
+
87
+function restore_directory_from_usb {
88
+	BACKUP_CERTIFICATE=/etc/ssl/private/backup.key
89
+	if [ ! -d ${1} ]; then
90
+		mkdir ${1}
91
+	fi
92
+	obnam restore -r $USB_MOUNT/backup/${2} --to ${1}
93
+}
94
+
95
+function restore_database {
96
+	RESTORE_SUBDIR="root"
97
+
98
+	if [ -d $USB_MOUNT/backup/${1} ]; then
99
+		echo $"Restoring ${1} database"
100
+		restore_directory_from_usb "/root/temp${1}data" "${1}data"
101
+		if [ ! -f /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then
102
+			echo $"Unable to restore ${1} database"
103
+			rm -rf /root/temp${1}data
104
+			umount $USB_MOUNT
105
+			rm -rf $USB_MOUNT
106
+			exit 503
107
+		fi
108
+		mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD ${1} -o < /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)
109
+		if [ ! "$?" = "0" ]; then
110
+			echo "$mysqlsuccess"
111
+			umount $USB_MOUNT
112
+			rm -rf $USB_MOUNT
113
+			exit 964
114
+		fi
115
+		shred -zu /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/*
116
+		rm -rf /root/temp${1}data
117
+		echo $"Restoring ${1} installation"
118
+		if [ ! -d /root/temp${1} ]; then
119
+			mkdir /root/temp${1}
120
+		fi
121
+		restore_directory_from_usb "/root/temp${1}" "${1}"
122
+		RESTORE_SUBDIR="var"
123
+		if [ ${2} ]; then
124
+			if [ -d /var/www/${2}/htdocs ]; then
125
+				if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
126
+					rm -rf /var/www/${2}/htdocs
127
+					mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/
128
+					if [ ! "$?" = "0" ]; then
129
+						umount $USB_MOUNT
130
+						rm -rf $USB_MOUNT
131
+						exit 683
132
+					fi
133
+					if [ -d /etc/letsencrypt/live/${2} ]; then
134
+						ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key
135
+						ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem
136
+					else
137
+						# Ensure that the bundled SSL cert is being used
138
+						if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then
139
+							sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}
140
+						fi
141
+					fi
142
+				fi
143
+			fi
144
+		fi
145
+	fi
146
+}
147
+
148
+# Make a backup of the original README file
149
+# incase old passwords need to be used
150
+if [ -f /home/$ADMIN_USERNAME/README ]; then
151
+	if [ ! -f /home/$ADMIN_USERNAME/README_original ]; then
152
+		cp /home/$ADMIN_USERNAME/README /home/$ADMIN_USERNAME/README_original
153
+	fi
154
+fi
155
+
156
+if [ -d $USB_MOUNT/backup/mariadb ]; then
157
+	echo $"Restoring mysql settings"
158
+	restore_directory_from_usb /root/tempmariadb mariadb
159
+	echo $"Get the MariaDB password from the backup"
160
+	if [ ! -f /root/tempmariadb/root/tempmariadb/db ]; then
161
+		echo $"MariaDB password file not found"
162
+		exit 495
163
+	fi
164
+	BACKUP_MARIADB_PASSWORD=$(cat /root/tempmariadb/root/tempmariadb/db)
165
+	if [[ $BACKUP_MARIADB_PASSWORD != $DATABASE_PASSWORD ]]; then
166
+		echo $"Restore the MariaDB user table"
167
+		mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD mysql -o < /root/tempmariadb/root/tempmariadb/mysql.sql)
168
+		if [ ! "$?" = "0" ]; then
169
+			echo $"Try again using the password obtained from backup"
170
+			mysqlsuccess=$(mysql -u root --password=$BACKUP_MARIADB_PASSWORD mysql -o < /root/tempmariadb/root/tempmariadb/mysql.sql)
171
+		fi
172
+		if [ ! "$?" = "0" ]; then
173
+			echo "$mysqlsuccess"
174
+			umount $USB_MOUNT
175
+			rm -rf $USB_MOUNT
176
+			exit 962
177
+		fi
178
+		echo $"Restarting database"
179
+		service mysql restart
180
+		echo $"Change the MariaDB password to the backup version"
181
+		DATABASE_PASSWORD=$BACKUP_MARIADB_PASSWORD
182
+	fi
183
+	shred -zu /root/tempmariadb/root/tempmariadb/db
184
+	rm -rf /root/tempmariadb
185
+
186
+	# Change database password file
187
+	echo "$DATABASE_PASSWORD" > /root/dbpass
188
+	chmod 600 /root/dbpass
189
+fi
190
+
191
+if [ -d $USB_MOUNT/backup/letsencrypt ]; then
192
+    echo $"Restoring Lets Encrypt settings"
193
+    restore_directory_from_usb / letsencrypt
194
+fi
195
+
196
+if [ -d $USB_MOUNT/backup/mutt ]; then
197
+	for d in $USB_MOUNT/backup/mutt/*/ ; do
198
+		USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
199
+		if [[ $USERNAME != "git" ]]; then
200
+			if [ ! -d /home/$USERNAME ]; then
201
+				${PROJECT_NAME}-adduser $USERNAME
202
+			fi
203
+			echo $"Restoring Mutt settings for $USERNAME"
204
+			restore_directory_from_usb /root/tempmutt mutt/$USERNAME
205
+			if [ -f /root/tempmutt/home/$USERNAME/tempbackup/.muttrc ]; then
206
+				cp -f /root/tempmutt/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
207
+			fi
208
+			if [ -f /root/tempmutt/home/$USERNAME/tempbackup/Muttrc ]; then
209
+				cp -f /root/tempmutt/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
210
+			fi
211
+			if [ ! "$?" = "0" ]; then
212
+				umount $USB_MOUNT
213
+				rm -rf $USB_MOUNT
214
+				rm -rf /root/tempmutt
215
+				exit 276
216
+			fi
217
+			rm -rf /root/tempmutt
218
+		fi
219
+	done
220
+fi
221
+
222
+if [ -d $USB_MOUNT/backup/gnupg ]; then
223
+	for d in $USB_MOUNT/backup/gnupg/*/ ; do
224
+		USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
225
+		if [[ $USERNAME != "git" ]]; then
226
+			if [ ! -d /home/$USERNAME ]; then
227
+				${PROJECT_NAME}-adduser $USERNAME
228
+			fi
229
+			echo $"Restoring gnupg settings for $USERNAME"
230
+			restore_directory_from_usb /root/tempgnupg gnupg/$USERNAME
231
+			cp -r /root/tempgnupg/home/$USERNAME/.gnupg /home/$USERNAME/
232
+			if [ ! "$?" = "0" ]; then
233
+				umount $USB_MOUNT
234
+				rm -rf $USB_MOUNT
235
+				rm -rf /root/tempgnupg
236
+				exit 276
237
+			fi
238
+			rm -rf /root/tempgnupg
239
+			if [[ "$USERNAME" == "$ADMIN_USERNAME" ]]; then
240
+				cp -r /home/$USERNAME/.gnupg /root
241
+				if [ ! "$?" = "0" ]; then
242
+					umount $USB_MOUNT
243
+					rm -rf $USB_MOUNT
244
+					exit 283
245
+				fi
246
+			fi
247
+		fi
248
+	done
249
+fi
250
+
251
+if [ -d $USB_MOUNT/backup/procmail ]; then
252
+	for d in $USB_MOUNT/backup/procmail/*/ ; do
253
+		USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
254
+		if [[ $USERNAME != "git" ]]; then
255
+			if [ ! -d /home/$USERNAME ]; then
256
+				${PROJECT_NAME}-adduser $USERNAME
257
+			fi
258
+			echo $"Restoring procmail settings for $USERNAME"
259
+			restore_directory_from_usb /root/tempprocmail procmail/$USERNAME
260
+			cp -f /root/tempprocmail/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
261
+			if [ ! "$?" = "0" ]; then
262
+				umount $USB_MOUNT
263
+				rm -rf $USB_MOUNT
264
+				rm -rf /root/tempprocmail
265
+				exit 276
266
+			fi
267
+			rm -rf /root/tempprocmail
268
+		fi
269
+	done
270
+fi
271
+
272
+if [ -d $USB_MOUNT/backup/spamassassin ]; then
273
+	for d in $USB_MOUNT/backup/spamassassin/*/ ; do
274
+		USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
275
+		if [[ $USERNAME != "git" ]]; then
276
+			if [ -d $USB_MOUNT/backup/spamassassin/$USERNAME ]; then
277
+				if [ ! -d /home/$USERNAME ]; then
278
+					${PROJECT_NAME}-adduser $USERNAME
279
+				fi
280
+				echo $"Restoring spamassassin settings for $USERNAME"
281
+				restore_directory_from_usb /root/tempspamassassin spamassassin/$USERNAME
282
+				cp -rf /root/tempspamassassin/home/$USERNAME/.spamassassin /home/$USERNAME/
283
+				if [ ! "$?" = "0" ]; then
284
+					umount $USB_MOUNT
285
+					rm -rf $USB_MOUNT
286
+					rm -rf /root/tempspamassassin
287
+					exit 276
288
+				fi
289
+				rm -rf /root/tempspamassassin
290
+			fi
291
+		fi
292
+	done
293
+fi
294
+
295
+if [ -d $USB_MOUNT/backup/readme ]; then
296
+	echo $"Restoring admin user README"
297
+	restore_directory_from_usb /root/tempreadme readme
298
+	cp -f /root/tempreadme/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
299
+	if [ ! "$?" = "0" ]; then
300
+		umount $USB_MOUNT
301
+		rm -rf $USB_MOUNT
302
+		rm -rf /root/tempreadme
303
+		exit 276
304
+	fi
305
+	rm -rf /root/tempreadme
306
+fi
307
+
308
+if [ -d $USB_MOUNT/backup/ipfs ]; then
309
+	echo $"Restoring IPFS"
310
+	restore_directory_from_usb /root/tempipfs ipfs
311
+	cp -rf /root/tempipfs/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
312
+	if [ ! "$?" = "0" ]; then
313
+		umount $USB_MOUNT
314
+		rm -rf $USB_MOUNT
315
+		rm -rf /root/tempipfs
316
+		exit 276
317
+	fi
318
+	rm -rf /root/tempipfs
319
+fi
320
+
321
+if [ -d $USB_MOUNT/backup/ssh ]; then
322
+	for d in $USB_MOUNT/backup/ssh/*/ ; do
323
+		USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
324
+		if [[ $USERNAME != "git" ]]; then
325
+			if [ ! -d /home/$USERNAME ]; then
326
+				${PROJECT_NAME}-adduser $USERNAME
327
+			fi
328
+			echo $"Restoring ssh keys for $USERNAME"
329
+			restore_directory_from_usb /root/tempssh ssh/$USERNAME
330
+			cp -r /root/tempssh/home/$USERNAME/.ssh /home/$USERNAME/
331
+			if [ ! "$?" = "0" ]; then
332
+				umount $USB_MOUNT
333
+				rm -rf $USB_MOUNT
334
+				rm -rf /root/tempssh
335
+				exit 664
336
+			fi
337
+			rm -rf /root/tempssh
338
+		fi
339
+	done
340
+fi
341
+
342
+if [ -d $USB_MOUNT/backup/config ]; then
343
+	for d in $USB_MOUNT/backup/config/*/ ; do
344
+		USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
345
+		if [[ $USERNAME != "git" ]]; then
346
+			if [ ! -d /home/$USERNAME ]; then
347
+				${PROJECT_NAME}-adduser $USERNAME
348
+			fi
349
+			echo $"Restoring config files for $USERNAME"
350
+			restore_directory_from_usb /root/tempconfig config/$USERNAME
351
+			cp -r /root/tempconfig/home/$USERNAME/.config /home/$USERNAME/
352
+			if [ ! "$?" = "0" ]; then
353
+				umount $USB_MOUNT
354
+				rm -rf $USB_MOUNT
355
+				rm -rf /root/tempconfig
356
+				exit 664
357
+			fi
358
+			rm -rf /root/tempconfig
359
+		fi
360
+	done
361
+fi
362
+
363
+if [ -d $USB_MOUNT/backup/ssl ]; then
364
+	echo $"Restoring certificates"
365
+	mkdir /root/tempssl
366
+	restore_directory_from_usb /root/tempssl ssl
367
+	cp -r /root/tempssl/etc/ssl/* /etc/ssl
368
+	if [ ! "$?" = "0" ]; then
369
+		umount $USB_MOUNT
370
+		rm -rf $USB_MOUNT
371
+		exit 276
372
+	fi
373
+	rm -rf /root/tempssl
374
+fi
375
+
376
+if [ -d $USB_MOUNT/backup/projects ]; then
377
+	for d in $USB_MOUNT/backup/projects/*/ ; do
378
+		USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
379
+		if [[ $USERNAME != "git" ]]; then
380
+			if [ ! -d /home/$USERNAME ]; then
381
+				${PROJECT_NAME}-adduser $USERNAME
382
+			fi
383
+			echo $"Restoring projects for $USERNAME"
384
+			restore_directory_from_usb /root/tempprojects projects/$USERNAME
385
+			if [ -d /home/$USERNAME/projects ]; then
386
+				rm -rf /home/$USERNAME/projects
387
+			fi
388
+			mv /root/tempprojects/home/$USERNAME/projects /home/$USERNAME
389
+			if [ ! "$?" = "0" ]; then
390
+				umount $USB_MOUNT
391
+				rm -rf $USB_MOUNT
392
+				exit 166
393
+			fi
394
+			rm -rf /root/tempprojects
395
+		fi
396
+	done
397
+fi
398
+
399
+if [ -d $USB_MOUNT/backup/personal ]; then
400
+	for d in $USB_MOUNT/backup/personal/*/ ; do
401
+		USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
402
+		if [[ $USERNAME != "git" ]]; then
403
+			if [ -d $USB_MOUNT/backup/personal/$USERNAME ]; then
404
+				if [ ! -d /home/$USERNAME ]; then
405
+					${PROJECT_NAME}-adduser $USERNAME
406
+				fi
407
+				echo $"Restoring personal settings for $USERNAME"
408
+				restore_directory_from_usb /root/temppersonal personal/$USERNAME
409
+				if [ -d /home/$USERNAME/personal ]; then
410
+					rm -rf /home/$USERNAME/personal
411
+				fi
412
+				mv /root/temppersonal/home/$USERNAME/personal /home/$USERNAME
413
+				if [ ! "$?" = "0" ]; then
414
+					umount $USB_MOUNT
415
+					rm -rf $USB_MOUNT
416
+					exit 184
417
+				fi
418
+				rm -rf /root/temppersonal
419
+			fi
420
+		fi
421
+	done
422
+fi
423
+
424
+if [ -d /var/spool/mlmmj ]; then
425
+	echo $"Restoring public mailing list"
426
+	restore_directory_from_usb /root/tempmailinglist mailinglist
427
+	cp -r /root/tempmailinglist/root/spool/mlmmj/* /var/spool/mlmmj
428
+	if [ ! "$?" = "0" ]; then
429
+		umount $USB_MOUNT
430
+		rm -rf $USB_MOUNT
431
+		exit 526
432
+	fi
433
+	rm -rf /root/tempmailinglist
434
+fi
435
+
436
+if [ -d /var/lib/prosody ]; then
437
+	echo $"Restoring XMPP settings"
438
+	restore_directory_from_usb /root/tempxmpp xmpp
439
+	cp -r /root/tempxmpp/var/lib/prosody/* /var/lib/prosody
440
+	if [ ! "$?" = "0" ]; then
441
+		umount $USB_MOUNT
442
+		rm -rf $USB_MOUNT
443
+		exit 725
444
+	fi
445
+	rm -rf /root/tempxmpp
446
+	service prosody restart
447
+	chown -R prosody:prosody /var/lib/prosody/*
448
+fi
449
+
450
+# Restoring GNU Social
451
+if grep -q "GNU Social domain" $COMPLETION_FILE; then
452
+    MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "GNU Social domain" | awk -F ':' '{print $2}')
453
+	restore_database gnusocial ${MICROBLOG_DOMAIN_NAME}
454
+	if [ -d /root/tempgnusocial ]; then
455
+		rm -rf /root/tempgnusocial
456
+	fi
457
+fi
458
+
459
+# Restoring hubzilla
460
+if grep -q "Hubzilla domain" $COMPLETION_FILE; then
461
+    HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
462
+	restore_database hubzilla ${HUBZILLA_DOMAIN_NAME}
463
+	if [ -d $USB_MOUNT/backup/hubzilla ]; then
464
+		if [ ! -d /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3 ]; then
465
+			mkdir -p /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
466
+		fi
467
+		chmod 777 /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
468
+		chown -R www-data:www-data /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/*
469
+		if [ -d /root/temphubzilla ]; then
470
+			rm -rf /root/temphubzilla
471
+		fi
472
+	fi
473
+fi
474
+
475
+if grep -q "Owncloud domain" $COMPLETION_FILE; then
476
+    OWNCLOUD_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Owncloud domain" | awk -F ':' '{print $2}')
477
+	restore_database owncloud $OWNCLOUD_DOMAIN_NAME
478
+	if [ -d $USB_MOUNT/backup/owncloud2 ]; then
479
+		restore_directory_from_usb /root/tempowncloud2 owncloud2
480
+		cp -r /root/tempowncloud2/etc/owncloud/* /etc/owncloud/
481
+		if [ ! "$?" = "0" ]; then
482
+			umount $USB_MOUNT
483
+			rm -rf $USB_MOUNT
484
+			exit 982
485
+		fi
486
+		rm -rf /root/tempowncloud
487
+		rm -rf /root/tempowncloud2
488
+		chown -R www-data:www-data /var/lib/owncloud/data
489
+		chown -R www-data:www-data /var/lib/owncloud/backup
490
+		chown -R www-data:www-data /var/lib/owncloud/assets
491
+		for d in /home/*/ ; do
492
+			USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
493
+			if [[ $USERNAME != "git" ]]; then
494
+				occ files:scan $USERNAME
495
+			fi
496
+		done
497
+		ln -s /usr/share/owncloud /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs
498
+	fi
499
+fi
500
+
501
+if grep -q "Gogs domain" $COMPLETION_FILE; then
502
+    GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
503
+	restore_database gogs ${GIT_DOMAIN_NAME}
504
+	if [ -d $USB_MOUNT/backup/gogs ]; then
505
+		echo $"Restoring Gogs settings"
506
+		if [ ! -d /home/git/go/src/github.com/gogits/gogs/custom ]; then
507
+			mkdir -p /home/git/go/src/github.com/gogits/gogs/custom
508
+		fi
509
+		cp -r /root/tempgogs/home/git/go/src/github.com/gogits/gogs/custom/* /home/git/go/src/github.com/gogits/gogs/custom
510
+		if [ ! "$?" = "0" ]; then
511
+			umount $USB_MOUNT
512
+			rm -rf $USB_MOUNT
513
+			exit 981
514
+		fi
515
+		echo $"Restoring Gogs repos"
516
+		restore_directory_from_usb /root/tempgogsrepos gogsrepos
517
+		cp -r /root/tempgogsrepos/home/git/gogs-repositories/* /home/git/gogs-repositories/
518
+		if [ ! "$?" = "0" ]; then
519
+			umount $USB_MOUNT
520
+			rm -rf $USB_MOUNT
521
+			exit 67574
522
+		fi
523
+		echo $"Restoring Gogs authorized_keys"
524
+		restore_directory_from_usb /root/tempgogsssh gogsssh
525
+		if [ ! -d /home/git/.ssh ]; then
526
+			mkdir /home/git/.ssh
527
+		fi
528
+		cp -r /root/tempgogsssh/home/git/.ssh/* /home/git/.ssh/
529
+		if [ ! "$?" = "0" ]; then
530
+			umount $USB_MOUNT
531
+			rm -rf $USB_MOUNT
532
+			exit 8463
533
+		fi
534
+		rm -rf /root/tempgogs
535
+		rm -rf /root/tempgogsrepos
536
+		rm -rf /root/tempgogsssh
537
+		chown -R git:git /home/git
538
+	fi
539
+fi
540
+
541
+if [ -d $USB_MOUNT/backup/wiki ]; then
542
+    WIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Wiki domain" | awk -F ':' '{print $2}')
543
+	echo $"Restoring Wiki installation ${WIKI_DOMAIN_NAME}"
544
+	restore_directory_from_usb /root/tempwiki wiki
545
+	cp -r /root/tempwiki/var/lib/dokuwiki/* /var/lib/dokuwiki/
546
+	if [ ! "$?" = "0" ]; then
547
+		umount $USB_MOUNT
548
+		rm -rf $USB_MOUNT
549
+		exit 868
550
+	fi
551
+	restore_directory_from_usb /root/tempwiki2 wiki2
552
+	cp -r /root/tempwiki2/etc/dokuwiki/* /etc/dokuwiki/
553
+	if [ ! "$?" = "0" ]; then
554
+		umount $USB_MOUNT
555
+		rm -rf $USB_MOUNT
556
+		exit 869
557
+	fi
558
+	rm -rf /root/tempwiki
559
+	rm -rf /root/tempwiki2
560
+	chown -R www-data:www-data /var/lib/dokuwiki/*
561
+	# Ensure that the bundled SSL cert is being used
562
+	if [ -f /etc/ssl/certs/${WIKI_DOMAIN_NAME}.bundle.crt ]; then
563
+		sed -i "s|${WIKI_DOMAIN_NAME}.crt|${WIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${WIKI_DOMAIN_NAME}
564
+	fi
565
+	if [ -d /etc/letsencrypt/live/${WIKI_DOMAIN_NAME} ]; then
566
+		ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${WIKI_DOMAIN_NAME}.key
567
+		ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${WIKI_DOMAIN_NAME}.pem
568
+	fi
569
+fi
570
+
571
+if [ -d $USB_MOUNT/backup/blog ]; then
572
+    FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
573
+	echo $"Restoring blog installation"
574
+	restore_directory_from_usb /root/tempblog blog
575
+	rm -rf /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs
576
+	cp -r /root/tempblog/var/www/${FULLBLOG_DOMAIN_NAME}/htdocs /var/www/${FULLBLOG_DOMAIN_NAME}/
577
+	if [ ! "$?" = "0" ]; then
578
+		umount $USB_MOUNT
579
+		rm -rf $USB_MOUNT
580
+		exit 593
581
+	fi
582
+	rm -rf /root/tempblog
583
+	if [ ! -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content ]; then
584
+		echo $"No content directory found after restoring blog"
585
+		umount $USB_MOUNT
586
+		rm -rf $USB_MOUNT
587
+		exit 287
588
+	fi
589
+	chown -R www-data:www-data /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs
590
+	# Ensure that the bundled SSL cert is being used
591
+	if [ -f /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.bundle.crt ]; then
592
+		sed -i "s|${FULLBLOG_DOMAIN_NAME}.crt|${FULLBLOG_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${FULLBLOG_DOMAIN_NAME}
593
+	fi
594
+	for d in /home/*/ ; do
595
+		USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
596
+		if [[ $USERNAME != "git" ]]; then
597
+			if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then
598
+				mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post
599
+			fi
600
+		fi
601
+	done
602
+	if [ -d /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME} ]; then
603
+		ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${FULLBLOG_DOMAIN_NAME}.key
604
+		ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.pem
605
+	fi
606
+fi
607
+
608
+if [ -d $USB_MOUNT/backup/cjdns ]; then
609
+	echo $"Restoring cjdns installation"
610
+	restore_directory_from_usb /root/tempcjdns cjdns
611
+	rm -rf /etc/cjdns
612
+	cp -r /root/tempcjdns/etc/cjdns /etc/
613
+	if [ ! "$?" = "0" ]; then
614
+		umount $USB_MOUNT
615
+		rm -rf $USB_MOUNT
616
+		exit 8472
617
+	fi
618
+	rm -rf /root/tempcjdns
619
+fi
620
+
621
+if [ -d $USB_MOUNT/backup/mail ]; then
622
+	for d in $USB_MOUNT/backup/mail/*/ ; do
623
+		USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
624
+		if [[ $USERNAME != "git" ]]; then
625
+			if [ ! -d /home/$USERNAME ]; then
626
+				${PROJECT_NAME}-adduser $USERNAME
627
+			fi
628
+			echo $"Restoring emails for $USERNAME"
629
+			restore_directory_from_usb /root/tempmail mail/$USERNAME
630
+			if [ ! -d /home/$USERNAME/Maildir ]; then
631
+				mkdir /home/$USERNAME/Maildir
632
+			fi
633
+			tar -xzvf /root/tempmail/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
634
+			if [ ! "$?" = "0" ]; then
635
+				umount $USB_MOUNT
636
+				rm -rf $USB_MOUNT
637
+				exit 927
638
+			fi
639
+			rm -rf /root/tempmail
640
+		fi
641
+	done
642
+fi
643
+
644
+if [ -d /var/cache/minidlna ]; then
645
+	if [ -d $USB_MOUNT/backup/dlna ]; then
646
+		echo $"Restoring DLNA cache"
647
+		restore_directory_from_usb /root/tempdlna dlna
648
+		cp -r /root/tempdlna/var/cache/minidlna/* /var/cache/minidlna/
649
+		if [ ! "$?" = "0" ]; then
650
+			umount $USB_MOUNT
651
+			rm -rf $USB_MOUNT
652
+			exit 982
653
+		fi
654
+		rm -rf /root/tempdlna
655
+	fi
656
+fi
657
+
658
+if [ -d $USB_MOUNT/backup/voip ]; then
659
+	echo $"Restoring VoIP settings"
660
+	restore_directory_from_usb /root/tempvoip voip
661
+	cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
662
+	if [ ! "$?" = "0" ]; then
663
+		umount $USB_MOUNT
664
+		rm -rf $USB_MOUNT
665
+		rm -rf /root/tempvoip
666
+		exit 3679
667
+	fi
668
+	cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
669
+	if [ ! "$?" = "0" ]; then
670
+		umount $USB_MOUNT
671
+		rm -rf $USB_MOUNT
672
+		rm -rf /root/tempvoip
673
+		exit 3679
674
+	fi
675
+	cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
676
+	if [ ! "$?" = "0" ]; then
677
+		umount $USB_MOUNT
678
+		rm -rf $USB_MOUNT
679
+		rm -rf /root/tempvoip
680
+		exit 276
681
+	fi
682
+	rm -rf /root/tempvoip
683
+	cp /etc/ssl/certs/mumble* /var/lib/mumble-server
684
+	cp /etc/ssl/private/mumble* /var/lib/mumble-server
685
+	chown -R mumble-server:mumble-server /var/lib/mumble-server
686
+	service sipwitch restart
687
+	service mumble-server restart
688
+fi
689
+
690
+if [ -d $USB_MOUNT/backup/tox ]; then
691
+	echo $"Restoring Tox node settings"
692
+	restore_directory_from_usb / tox
693
+	if [ ! "$?" = "0" ]; then
694
+		umount $USB_MOUNT
695
+		rm -rf $USB_MOUNT
696
+		exit 6393
697
+	fi
698
+	cp /var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf
699
+	systemctl restart tox-bootstrapd.service
700
+	if [ ! "$?" = "0" ]; then
701
+		systemctl status tox-bootstrapd.service
702
+		umount $USB_MOUNT
703
+		rm -rf $USB_MOUNT
704
+		exit 59369
705
+	fi
706
+fi
707
+
708
+sync
709
+
710
+# Unmount the USB drive
711
+umount $USB_MOUNT
712
+rm -rf $USB_MOUNT
713
+
714
+# Restart the web server
715
+systemctl restart nginx
716
+systemctl restart php5-fpm
717
+
718
+echo $"Setting permissions"
719
+for d in /home/*/ ; do
720
+	USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
721
+	if [[ $USERNAME != "git" ]]; then
722
+		chown -R $USERNAME:$USERNAME /home/$USERNAME
723
+	fi
724
+done
725
+
726
+if [[ $USB_DRIVE == /dev/mapper/encrypted_usb ]]; then
727
+	echo $"Unmount encrypted USB"
728
+	cryptsetup luksClose encrypted_usb
729
+fi
730
+if [ -f /dev/mapper/encrypted_usb ]; then
731
+	rm -rf /dev/mapper/encrypted_usb
732
+fi
733
+
734
+echo $"Restore from USB drive is complete. You can now remove it."
735
+exit 0