Browse Source

Fixing quotes

Bob Mottram 10 years ago
parent
commit
6caaf8ae11
1 changed files with 82 additions and 6 deletions
  1. 82
    6
      install-freedombone.sh

+ 82
- 6
install-freedombone.sh View File

202
 # name of a script used to backup to friends servers
202
 # name of a script used to backup to friends servers
203
 BACKUP_TO_FRIENDS_SCRIPT_NAME="backup2friends"
203
 BACKUP_TO_FRIENDS_SCRIPT_NAME="backup2friends"
204
 
204
 
205
+# name of a script used to restore backed up data from a friend
206
+RESTORE_FROM_FRIEND_SCRIPT_NAME="restorefromfriend"
207
+
205
 # passphrase used for automatic backups to friends servers
208
 # passphrase used for automatic backups to friends servers
206
 # this will be automatically generated
209
 # this will be automatically generated
207
 BACKUP_TO_FRIENDS_PASSPHRASE=
210
 BACKUP_TO_FRIENDS_PASSPHRASE=
470
   echo "  rm -rf /home/$MY_USERNAME/tempfiles" >> /usr/bin/$BACKUP_SCRIPT_NAME
473
   echo "  rm -rf /home/$MY_USERNAME/tempfiles" >> /usr/bin/$BACKUP_SCRIPT_NAME
471
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
474
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
472
   echo 'sync' >> /usr/bin/$BACKUP_SCRIPT_NAME
475
   echo 'sync' >> /usr/bin/$BACKUP_SCRIPT_NAME
473
-  echo 'umount $USB_MOUNT' >> /usr/bin/$BACKUP_SCRIPT_NAME
476
+  echo "umount $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
474
   echo 'echo "Backup to USB drive is complete. You can now unplug it."' >> /usr/bin/$BACKUP_SCRIPT_NAME
477
   echo 'echo "Backup to USB drive is complete. You can now unplug it."' >> /usr/bin/$BACKUP_SCRIPT_NAME
475
   echo 'exit 0' >> /usr/bin/$BACKUP_SCRIPT_NAME
478
   echo 'exit 0' >> /usr/bin/$BACKUP_SCRIPT_NAME
476
 
479
 
523
   echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
526
   echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
524
 
527
 
525
   echo "if [ -d /home/$MY_USERNAME/tempfiles ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
528
   echo "if [ -d /home/$MY_USERNAME/tempfiles ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
526
-  echo '  rm -rf /home/$MY_USERNAME/tempfiles/*' >> /usr/bin/$RESTORE_SCRIPT_NAME
529
+  echo "  rm -rf /home/$MY_USERNAME/tempfiles/*" >> /usr/bin/$RESTORE_SCRIPT_NAME
527
   echo 'else' >> /usr/bin/$RESTORE_SCRIPT_NAME
530
   echo 'else' >> /usr/bin/$RESTORE_SCRIPT_NAME
528
-  echo '  mkdir /home/$MY_USERNAME/tempfiles' >> /usr/bin/$RESTORE_SCRIPT_NAME
531
+  echo "  mkdir /home/$MY_USERNAME/tempfiles" >> /usr/bin/$RESTORE_SCRIPT_NAME
529
   echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
532
   echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
530
   echo 'echo "Restoring web content and miscellaneous files"' >> /usr/bin/$RESTORE_SCRIPT_NAME
533
   echo 'echo "Restoring web content and miscellaneous files"' >> /usr/bin/$RESTORE_SCRIPT_NAME
531
   echo "duplicity --force file://$USB_MOUNT/backup/tempfiles /home/$MY_USERNAME/tempfiles" >> /usr/bin/$RESTORE_SCRIPT_NAME
534
   echo "duplicity --force file://$USB_MOUNT/backup/tempfiles /home/$MY_USERNAME/tempfiles" >> /usr/bin/$RESTORE_SCRIPT_NAME
532
-  echo 'tar -xzvf /home/$MY_USERNAME/tempfiles/miscfiles.tar.gz -C /' >> /usr/bin/$RESTORE_SCRIPT_NAME
533
-  echo 'rm -rf /home/$MY_USERNAME/tempfiles' >> /usr/bin/$RESTORE_SCRIPT_NAME
535
+  echo "tar -xzvf /home/$MY_USERNAME/tempfiles/miscfiles.tar.gz -C /" >> /usr/bin/$RESTORE_SCRIPT_NAME
536
+  echo "rm -rf /home/$MY_USERNAME/tempfiles" >> /usr/bin/$RESTORE_SCRIPT_NAME
534
 
537
 
535
   echo "if [ -d /home/$MY_USERNAME/Maildir ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
538
   echo "if [ -d /home/$MY_USERNAME/Maildir ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
536
   echo '  echo "Restoring emails"' >> /usr/bin/$RESTORE_SCRIPT_NAME
539
   echo '  echo "Restoring emails"' >> /usr/bin/$RESTORE_SCRIPT_NAME
543
   echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
546
   echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
544
 
547
 
545
   echo 'sync' >> /usr/bin/$RESTORE_SCRIPT_NAME
548
   echo 'sync' >> /usr/bin/$RESTORE_SCRIPT_NAME
546
-  echo 'umount $USB_MOUNT' >> /usr/bin/$RESTORE_SCRIPT_NAME
549
+  echo "umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
547
   echo 'echo "Restore from USB drive is complete. You can now remove it."' >> /usr/bin/$RESTORE_SCRIPT_NAME
550
   echo 'echo "Restore from USB drive is complete. You can now remove it."' >> /usr/bin/$RESTORE_SCRIPT_NAME
548
   echo 'exit 0' >> /usr/bin/$RESTORE_SCRIPT_NAME
551
   echo 'exit 0' >> /usr/bin/$RESTORE_SCRIPT_NAME
549
 
552
 
702
   echo 'backup_to_friends_servers' >> $COMPLETION_FILE
705
   echo 'backup_to_friends_servers' >> $COMPLETION_FILE
703
 }
706
 }
704
 
707
 
708
+function restore_from_friend {
709
+  if grep -Fxq "restore_from_friend" $COMPLETION_FILE; then
710
+      return
711
+  fi
712
+
713
+  if [ ! $BACKUP_TO_FRIENDS_PASSPHRASE ]; then
714
+      BACKUP_TO_FRIENDS_PASSPHRASE=$(openssl rand -base64 32)
715
+  fi
716
+
717
+  echo '#!/bin/bash' > /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
718
+  echo 'SERVER_NAME=$1' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
719
+  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
720
+  echo "PASSPHRASE='$BACKUP_TO_FRIENDS_PASSPHRASE'" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
721
+  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
722
+  echo 'if [ ! $SERVER_NAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
723
+  echo "    echo '$RESTORE_FROM_FRIEND_SCRIPT_NAME [server]'" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
724
+  echo '    exit 1' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
725
+  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
726
+  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
727
+  echo "if [ ! -f $FRIENDS_SERVERS_LIST ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
728
+  echo "    echo 'No friends list found at $FRIENDS_SERVERS_LIST'" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
729
+  echo '    exit 2' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
730
+  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
731
+  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
732
+  echo -n 'if ! grep -q "$SERVER_NAME" ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
733
+  echo "$FRIENDS_SERVERS_LIST; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
734
+  echo '    echo "Server not found within the friends list"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
735
+  echo '    exit 3' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
736
+  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
737
+  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
738
+  echo -n 'SERVER=$(grep -i "$SERVER_NAME" ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
739
+  echo "$FRIENDS_SERVERS_LIST | awk -F ' ' '{print $1}')" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
740
+  echo -n 'FTP_PASSWORD=$(grep -i "$SERVER_NAME" ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
741
+  echo "$FRIENDS_SERVERS_LIST | awk -F ' ' '{print $2}')" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
742
+  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
743
+
744
+  echo "if [ -d $PUBLIC_MAILING_LIST_DIRECTORY ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
745
+  echo '  echo "Restoring public mailing list"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
746
+  echo "  duplicity --force $SERVER/publicmailinglist $PUBLIC_MAILING_LIST_DIRECTORY" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
747
+  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
748
+
749
+  echo "if [ -d $XMPP_DIRECTORY ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
750
+  echo '  echo "Restoring XMPP settings"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
751
+  echo "  duplicity --force $SERVER/xmpp $XMPP_DIRECTORY" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
752
+  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
753
+
754
+  echo "if [ -d /home/$MY_USERNAME/tempfiles ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
755
+  echo "  rm -rf /home/$MY_USERNAME/tempfiles/*" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
756
+  echo 'else' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
757
+  echo "  mkdir /home/$MY_USERNAME/tempfiles" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
758
+  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
759
+  echo 'echo "Restoring web content and miscellaneous files"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
760
+  echo "duplicity --force $SERVER/tempfiles /home/$MY_USERNAME/tempfiles" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
761
+  echo "tar -xzvf /home/$MY_USERNAME/tempfiles/miscfiles.tar.gz -C /" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
762
+  echo "rm -rf /home/$MY_USERNAME/tempfiles" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
763
+
764
+  echo "if [ -d /home/$MY_USERNAME/Maildir ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
765
+  echo '  echo "Restoring emails"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
766
+  echo "  duplicity --force $SERVER/Maildir /home/$MY_USERNAME/Maildir" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
767
+  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
768
+
769
+  echo "if [ -d /var/cache/minidlna ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
770
+  echo '  echo "Restoring DLNA cache"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
771
+  echo "  duplicity --force $SERVER/dlna /var/cache/minidlna" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
772
+  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
773
+
774
+  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
775
+  echo 'exit 0' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
776
+
777
+  echo 'restore_from_friend' >> $COMPLETION_FILE
778
+}
779
+
705
 function remove_default_user {
780
 function remove_default_user {
706
   # make sure you don't use the default user account
781
   # make sure you don't use the default user account
707
   if [[ $MY_USERNAME == "debian" ]]; then
782
   if [[ $MY_USERNAME == "debian" ]]; then
3925
 create_backup_script
4000
 create_backup_script
3926
 create_restore_script
4001
 create_restore_script
3927
 backup_to_friends_servers
4002
 backup_to_friends_servers
4003
+restore_from_friend
3928
 install_final
4004
 install_final
3929
 apt-get -y --force-yes autoremove
4005
 apt-get -y --force-yes autoremove
3930
 echo 'Freedombone installation is complete'
4006
 echo 'Freedombone installation is complete'