Browse Source

Script to restore only hubzilla

Bob Mottram 9 years ago
parent
commit
74b94e4f45
1 changed files with 227 additions and 64 deletions
  1. 227
    64
      src/freedombone

+ 227
- 64
src/freedombone View File

@@ -153,6 +153,7 @@ HUBZILLA_CODE=
153 153
 HUBZILLA_REPO="https://github.com/redmatrix/hubzilla.git"
154 154
 HUBZILLA_ADDONS_REPO="https://github.com/redmatrix/hubzilla-addons.git"
155 155
 HUBZILLA_ADMIN_PASSWORD=
156
+RESTORE_HUBZILLA_SCRIPT_NAME="restorehubzilla"
156 157
 
157 158
 # Domain name for git hosting installation
158 159
 GIT_DOMAIN_NAME=
@@ -2595,13 +2596,13 @@ function create_backup_script {
2595 2596
   echo -n '$1' >> /usr/bin/$BACKUP_SCRIPT_NAME
2596 2597
   echo "}')" >> /usr/bin/$BACKUP_SCRIPT_NAME
2597 2598
   echo 'if [ $used_percent -gt 95 ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2598
-  echo '  echo "Less than 5% of space remaining on backup drive"' >> /usr/bin/$BACKUP_SCRIPT_NAME 
2599
+  echo '  echo "Less than 5% of space remaining on backup drive"' >> /usr/bin/$BACKUP_SCRIPT_NAME
2599 2600
   echo '  umount $USB_MOUNT' >> /usr/bin/$BACKUP_SCRIPT_NAME
2600 2601
   echo '  rm -rf $USB_MOUNT' >> /usr/bin/$BACKUP_SCRIPT_NAME
2601 2602
   echo '  exit 6492' >> /usr/bin/$BACKUP_SCRIPT_NAME
2602 2603
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2603 2604
   echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
2604
-  
2605
+
2605 2606
   echo '# MariaDB password' >> /usr/bin/$BACKUP_SCRIPT_NAME
2606 2607
   echo -n 'DATABASE_PASSWORD=$(cat ' >> /usr/bin/$BACKUP_SCRIPT_NAME
2607 2608
   echo "$DATABASE_PASSWORD_FILE)" >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -3003,77 +3004,79 @@ function create_backup_script {
3003 3004
 }
3004 3005
 
3005 3006
 function restore_directory_from_usb {
3006
-  echo 'function restore_directory_from_usb {' >> /usr/bin/$RESTORE_SCRIPT_NAME
3007
-  echo "  BACKUP_CERTIFICATE=$BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
3008
-  echo '  if [ ! -d ${1} ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3009
-  echo '    mkdir ${1}' >> /usr/bin/$RESTORE_SCRIPT_NAME
3010
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3007
+  script_name=$1
3008
+  echo 'function restore_directory_from_usb {' >> $script_name
3009
+  echo "  BACKUP_CERTIFICATE=$BACKUP_CERTIFICATE" >> $script_name
3010
+  echo '  if [ ! -d ${1} ]; then' >> $script_name
3011
+  echo '    mkdir ${1}' >> $script_name
3012
+  echo '  fi' >> $script_name
3011 3013
 
3012 3014
   if [[ $BACKUP_TYPE == 'obnam' ]]; then
3013
-      echo '  obnam restore -r $USB_MOUNT/backup/${2} --to ${1}' >> /usr/bin/$RESTORE_SCRIPT_NAME
3015
+      echo '  obnam restore -r $USB_MOUNT/backup/${2} --to ${1}' >> $script_name
3014 3016
   else
3015
-      echo '  rsyncrypto -v -d -r $USB_MOUNT/backup/${2} ${1} $USB_MOUNT/backup/${2}.keys $BACKUP_CERTIFICATE' >> /usr/bin/$RESTORE_SCRIPT_NAME
3017
+      echo '  rsyncrypto -v -d -r $USB_MOUNT/backup/${2} ${1} $USB_MOUNT/backup/${2}.keys $BACKUP_CERTIFICATE' >> $script_name
3016 3018
   fi
3017
-  echo '}' >> /usr/bin/$RESTORE_SCRIPT_NAME
3019
+  echo '}' >> $script_name
3018 3020
 }
3019 3021
 
3020 3022
 function restore_database {
3021
-  echo 'function restore_database {' >> /usr/bin/$RESTORE_SCRIPT_NAME
3023
+  script_name=$1
3024
+  echo 'function restore_database {' >> $script_name
3022 3025
   if [[ $BACKUP_TYPE == 'obnam' ]]; then
3023
-      echo '  RESTORE_SUBDIR="root"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3026
+      echo '  RESTORE_SUBDIR="root"' >> $script_name
3024 3027
   else
3025
-      echo '  RESTORE_SUBDIR="usb/backup/${1}data"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3026
-  fi
3027
-  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3028
-  echo '  if [ -d $USB_MOUNT/backup/${1} ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3029
-  echo '    echo "Restoring ${1} database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3030
-  echo '    restore_directory_from_usb "/root/temp${1}data" "${1}data"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3031
-  echo '    if [ ! -f /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3032
-  echo '      echo "Unable to restore ${1} database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3033
-  echo '      rm -rf /root/temp${1}data' >> /usr/bin/$RESTORE_SCRIPT_NAME
3034
-  echo '      umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3035
-  echo '      rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3036
-  echo '      exit 503' >> /usr/bin/$RESTORE_SCRIPT_NAME
3037
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3038
-  echo -n '    mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD ' >> /usr/bin/$RESTORE_SCRIPT_NAME
3039
-  echo '${1} -o < /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)' >> /usr/bin/$RESTORE_SCRIPT_NAME
3040
-  echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3041
-  echo '      echo "$mysqlsuccess"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3042
-  echo '      umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3043
-  echo '      rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3044
-  echo '      exit 964' >> /usr/bin/$RESTORE_SCRIPT_NAME
3045
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3046
-  echo '    shred -zu /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/*' >> /usr/bin/$RESTORE_SCRIPT_NAME
3047
-  echo '    rm -rf /root/temp${1}data' >> /usr/bin/$RESTORE_SCRIPT_NAME
3048
-  echo '    echo "Restoring ${1} installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3049
-  echo '    if [ ! -d /root/temp${1} ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3050
-  echo '      mkdir /root/temp${1}' >> /usr/bin/$RESTORE_SCRIPT_NAME
3051
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3052
-  echo '    restore_directory_from_usb "/root/temp${1}" "${1}"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3028
+      echo '  RESTORE_SUBDIR="usb/backup/${1}data"' >> $script_name
3029
+  fi
3030
+  echo '' >> $script_name
3031
+  echo '  if [ -d $USB_MOUNT/backup/${1} ]; then' >> $script_name
3032
+  echo '    echo "Restoring ${1} database"' >> $script_name
3033
+  echo '    restore_directory_from_usb "/root/temp${1}data" "${1}data"' >> $script_name
3034
+  echo '    if [ ! -f /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then' >> $script_name
3035
+  echo '      echo "Unable to restore ${1} database"' >> $script_name
3036
+  echo '      rm -rf /root/temp${1}data' >> $script_name
3037
+  echo '      umount $USB_MOUNT' >> $script_name
3038
+  echo '      rm -rf $USB_MOUNT' >> $script_name
3039
+  echo '      exit 503' >> $script_name
3040
+  echo '    fi' >> $script_name
3041
+  echo -n '    mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD ' >> $script_name
3042
+  echo '${1} -o < /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)' >> $script_name
3043
+  echo '    if [ ! "$?" = "0" ]; then' >> $script_name
3044
+  echo '      echo "$mysqlsuccess"' >> $script_name
3045
+  echo '      umount $USB_MOUNT' >> $script_name
3046
+  echo '      rm -rf $USB_MOUNT' >> $script_name
3047
+  echo '      exit 964' >> $script_name
3048
+  echo '    fi' >> $script_name
3049
+  echo '    shred -zu /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/*' >> $script_name
3050
+  echo '    rm -rf /root/temp${1}data' >> $script_name
3051
+  echo '    echo "Restoring ${1} installation"' >> $script_name
3052
+  echo '    if [ ! -d /root/temp${1} ]; then' >> $script_name
3053
+  echo '      mkdir /root/temp${1}' >> $script_name
3054
+  echo '    fi' >> $script_name
3055
+  echo '    restore_directory_from_usb "/root/temp${1}" "${1}"' >> $script_name
3053 3056
   if [[ $BACKUP_TYPE == 'obnam' ]]; then
3054
-      echo '    RESTORE_SUBDIR="var"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3057
+      echo '    RESTORE_SUBDIR="var"' >> $script_name
3055 3058
   else
3056
-      echo '    RESTORE_SUBDIR="usb/backup/${1}"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3057
-  fi
3058
-  echo '    if [ ${2} ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3059
-  echo '      if [ -d /var/www/${2}/htdocs ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3060
-  echo '        if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3061
-  echo '          rm -rf /var/www/${2}/htdocs' >> /usr/bin/$RESTORE_SCRIPT_NAME
3062
-  echo '          mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/' >> /usr/bin/$RESTORE_SCRIPT_NAME
3063
-  echo '          if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3064
-  echo '            umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3065
-  echo '            rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
3066
-  echo '            exit 683' >> /usr/bin/$RESTORE_SCRIPT_NAME
3067
-  echo '          fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3068
-  echo '          # Ensure that the bundled SSL cert is being used' >> /usr/bin/$RESTORE_SCRIPT_NAME
3069
-  echo '          if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3070
-  echo '            sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}' >> /usr/bin/$RESTORE_SCRIPT_NAME
3071
-  echo '          fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3072
-  echo '        fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3073
-  echo '      fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3074
-  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3075
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3076
-  echo '}' >> /usr/bin/$RESTORE_SCRIPT_NAME
3059
+      echo '    RESTORE_SUBDIR="usb/backup/${1}"' >> $script_name
3060
+  fi
3061
+  echo '    if [ ${2} ]; then' >> $script_name
3062
+  echo '      if [ -d /var/www/${2}/htdocs ]; then' >> $script_name
3063
+  echo '        if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then' >> $script_name
3064
+  echo '          rm -rf /var/www/${2}/htdocs' >> $script_name
3065
+  echo '          mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/' >> $script_name
3066
+  echo '          if [ ! "$?" = "0" ]; then' >> $script_name
3067
+  echo '            umount $USB_MOUNT' >> $script_name
3068
+  echo '            rm -rf $USB_MOUNT' >> $script_name
3069
+  echo '            exit 683' >> $script_name
3070
+  echo '          fi' >> $script_name
3071
+  echo '          # Ensure that the bundled SSL cert is being used' >> $script_name
3072
+  echo '          if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then' >> $script_name
3073
+  echo '            sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}' >> $script_name
3074
+  echo '          fi' >> $script_name
3075
+  echo '        fi' >> $script_name
3076
+  echo '      fi' >> $script_name
3077
+  echo '    fi' >> $script_name
3078
+  echo '  fi' >> $script_name
3079
+  echo '}' >> $script_name
3077 3080
 }
3078 3081
 
3079 3082
 function create_restore_script {
@@ -3146,9 +3149,9 @@ function create_restore_script {
3146 3149
   echo "$DATABASE_PASSWORD_FILE)" >> /usr/bin/$RESTORE_SCRIPT_NAME
3147 3150
   echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3148 3151
 
3149
-  restore_directory_from_usb
3152
+  restore_directory_from_usb /usr/bin/$RESTORE_SCRIPT_NAME
3150 3153
   echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3151
-  restore_database
3154
+  restore_database /usr/bin/$RESTORE_SCRIPT_NAME
3152 3155
   echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3153 3156
 
3154 3157
   if [[ $BACKUP_TYPE != 'obnam' ]]; then
@@ -3902,6 +3905,166 @@ function create_restore_script {
3902 3905
   echo 'create_restore_script' >> $COMPLETION_FILE
3903 3906
 }
3904 3907
 
3908
+function create_restore_hubzilla_script {
3909
+  if grep -Fxq "create_restore_hubzilla_script" $COMPLETION_FILE; then
3910
+      return
3911
+  fi
3912
+  apt-get -y install rsyncrypto cryptsetup obnam
3913
+
3914
+  get_mariadb_password
3915
+  get_mariadb_hubzilla_admin_password
3916
+  get_mariadb_git_admin_password
3917
+
3918
+  echo '#!/bin/bash' > /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3919
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3920
+  echo "USB_DRIVE=$USB_DRIVE" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3921
+  echo 'if [ $1 ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3922
+  echo '  USB_DRIVE=/dev/${1}1' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3923
+  echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3924
+  echo "USB_MOUNT=$USB_MOUNT" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3925
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3926
+  echo "ADMIN_USERNAME=$MY_USERNAME" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3927
+  echo "MY_USERNAME=$MY_USERNAME" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3928
+  echo 'if [ $2 ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3929
+  echo '  MY_USERNAME=$2' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3930
+  echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3931
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3932
+  echo 'if [ ! -b $USB_DRIVE ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3933
+  echo '  echo "Please attach a USB drive"' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3934
+  echo '  exit 1' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3935
+  echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3936
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3937
+  echo 'if [ ! -d $USB_MOUNT ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3938
+  echo '  mkdir $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3939
+  echo '  if [ -f /dev/mapper/encrypted_usb ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3940
+  echo '    rm -rf /dev/mapper/encrypted_usb' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3941
+  echo '  fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3942
+  echo '  cryptsetup luksClose encrypted_usb' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3943
+  echo '  cryptsetup luksOpen $USB_DRIVE encrypted_usb' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3944
+  echo '  if [ "$?" = "0" ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3945
+  echo '      USB_DRIVE=/dev/mapper/encrypted_usb' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3946
+  echo '  fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3947
+  echo -n '  mount $USB_DRIVE ' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3948
+  echo '$USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3949
+  echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3950
+  echo 'if [ ! -d $USB_MOUNT/backup ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3951
+  echo '  echo "No backup directory found on the USB drive."' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3952
+  echo '  umount $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3953
+  echo '  rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3954
+  echo '  exit 2' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3955
+  echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3956
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3957
+
3958
+  echo 'echo "Checking that user exists"' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3959
+  echo 'if [ ! -d /home/$MY_USERNAME ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3960
+  echo '  echo "Username $MY_USERNAME not found. Reinstall Freedombone with this username."' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3961
+  echo '  umount $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3962
+  echo '  rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3963
+  echo '  exit 295' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3964
+  echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3965
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3966
+
3967
+  echo 'echo "Copying GPG keys to root"' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3968
+  echo 'cp -r /home/$MY_USERNAME/.gnupg /root' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3969
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3970
+
3971
+  echo '# MariaDB password' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3972
+  echo -n 'DATABASE_PASSWORD=$(cat ' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3973
+  echo "$DATABASE_PASSWORD_FILE)" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3974
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3975
+
3976
+  restore_directory_from_usb /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3977
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3978
+  restore_database /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3979
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3980
+
3981
+  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3982
+      echo 'if [ -f $USB_MOUNT/backup/key.gpg ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3983
+      echo "  if [ -f $BACKUP_CERTIFICATE.new ]; then" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3984
+      echo "    rm $BACKUP_CERTIFICATE.new" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3985
+      echo '  fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3986
+      echo '  cp $USB_MOUNT/backup/key.gpg /root/tempbackupkey.gpg' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3987
+      echo "  gpg /root/tempbackupkey.gpg" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3988
+      echo "  if [ -f /root/tempbackupkey ]; then" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3989
+      echo '    echo "Backup key decrypted"' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3990
+      echo "    cp /root/tempbackupkey $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3991
+      echo "    shred -zu /root/tempbackupkey" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3992
+      echo "    chmod 400 $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3993
+      echo '    echo "Backup certificate installed"' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3994
+      echo '  else' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3995
+      echo '    echo "Unable to decrypt the backup key"' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3996
+      echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3997
+      echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3998
+      echo '    exit 735' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
3999
+      echo '  fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4000
+      echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4001
+      echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4002
+
4003
+      echo "if [ ! -f $BACKUP_CERTIFICATE ]; then" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4004
+      echo "    echo 'No backup key was found. Copy your backup key to $BACKUP_CERTIFICATE'" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4005
+      echo '    umount $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4006
+      echo '    rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4007
+      echo '    exit 563' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4008
+      echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4009
+      echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4010
+  fi
4011
+
4012
+  BACKUP_INCLUDES_WEBSITES="no"
4013
+
4014
+  if grep -Fxq "install_hubzilla" $COMPLETION_FILE; then
4015
+      BACKUP_INCLUDES_WEBSITES="yes"
4016
+      echo "restore_database hubzilla $HUBZILLA_DOMAIN_NAME" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4017
+      echo 'if [ -d $USB_MOUNT/backup/hubzilla ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4018
+      echo "  if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3 ]; then" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4019
+      echo "    mkdir -p /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4020
+      echo "  fi" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4021
+      echo "  chmod 777 /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4022
+      echo "  chown -R www-data:www-data /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/*" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4023
+      echo '  if [ -d /root/temphubzilla ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4024
+      echo '    rm -rf /root/temphubzilla' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4025
+      echo '  fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4026
+      echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4027
+      echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4028
+  fi
4029
+
4030
+  echo 'sync' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4031
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4032
+  echo "# Unmount the USB drive" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4033
+  echo 'umount $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4034
+  echo 'rm -rf $USB_MOUNT' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4035
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4036
+  if [[ $BACKUP_INCLUDES_WEBSITES == "yes" ]]; then
4037
+      echo "# Restart the web server" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4038
+      echo "service nginx restart" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4039
+      echo "service php5-fpm restart" >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4040
+  fi
4041
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4042
+  echo 'echo "Setting permissions"' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4043
+  echo 'for d in /home/*/ ; do' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4044
+  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4045
+  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4046
+  echo '    chown -R $USERNAME:$USERNAME /home/$USERNAME' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4047
+  echo '  fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4048
+  echo 'done' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4049
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4050
+
4051
+  echo 'if [[ $USB_DRIVE == /dev/mapper/encrypted_usb ]]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4052
+  echo '  echo "Unmount encrypted USB"' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4053
+  echo '  cryptsetup luksClose encrypted_usb' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4054
+  echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4055
+  echo 'if [ -f /dev/mapper/encrypted_usb ]; then' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4056
+  echo '  rm -rf /dev/mapper/encrypted_usb' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4057
+  echo 'fi' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4058
+  echo '' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4059
+
4060
+  echo 'echo "Restore of Hubzilla from USB drive is complete. You can now remove it."' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4061
+  echo 'exit 0' >> /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4062
+  chmod 400 /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4063
+  chmod +x /usr/bin/$RESTORE_HUBZILLA_SCRIPT_NAME
4064
+
4065
+  echo 'create_restore_hubzilla_script' >> $COMPLETION_FILE
4066
+}
4067
+
3905 4068
 function create_freedns_updater {
3906 4069
   # currently inadyn doesn't work as expected with freeDNS, so this is a workaround
3907 4070
   if grep -Fxq "create_freedns_updater" $COMPLETION_FILE; then