| 
				
			 | 
			
			
				@@ -301,11 +301,12 @@ function check_hwrng { 
			 | 
		
	
		
			
			| 
				301
			 | 
			
				301
			 | 
			
			
				   fi 
			 | 
		
	
		
			
			| 
				302
			 | 
			
				302
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				303
			 | 
			
				303
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				304
			 | 
			
				
			 | 
			
			
				-function create_backup_script { 
			 | 
		
	
		
			
			| 
				305
			 | 
			
				
			 | 
			
			
				-  if grep -Fxq "create_backup_script" $COMPLETION_FILE; then 
			 | 
		
	
		
			
			| 
				306
			 | 
			
				
			 | 
			
			
				-      return 
			 | 
		
	
		
			
			| 
				
			 | 
			
				304
			 | 
			
			
				+function import_gpg_key_to_root { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				305
			 | 
			
			
				+  if [ ! $MY_GPG_PUBLIC_KEY ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				306
			 | 
			
			
				+      MY_GPG_PUBLIC_KEY=/tmp/public_key.gpg 
			 | 
		
	
		
			
			| 
				307
			 | 
			
				307
			 | 
			
			
				   fi 
			 | 
		
	
		
			
			| 
				308
			 | 
			
				
			 | 
			
			
				-  apt-get -y --force-yes install duplicity gnupg 
			 | 
		
	
		
			
			| 
				
			 | 
			
				308
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				309
			 | 
			
			
				+  apt-get -y --force-yes install gnupg 
			 | 
		
	
		
			
			| 
				309
			 | 
			
				310
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				310
			 | 
			
				311
			 | 
			
			
				   if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then 
			 | 
		
	
		
			
			| 
				311
			 | 
			
				312
			 | 
			
			
				       MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}') 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -313,9 +314,6 @@ function create_backup_script { 
			 | 
		
	
		
			
			| 
				313
			 | 
			
				314
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				314
			 | 
			
				315
			 | 
			
			
				   # make sure that the root user has access to your gpg public key 
			 | 
		
	
		
			
			| 
				315
			 | 
			
				316
			 | 
			
			
				   if [ $MY_GPG_PUBLIC_KEY_ID ]; then 
			 | 
		
	
		
			
			| 
				316
			 | 
			
				
			 | 
			
			
				-      if [ ! $MY_GPG_PUBLIC_KEY ]; then 
			 | 
		
	
		
			
			| 
				317
			 | 
			
				
			 | 
			
			
				-          MY_GPG_PUBLIC_KEY=/tmp/public_key.gpg 
			 | 
		
	
		
			
			| 
				318
			 | 
			
				
			 | 
			
			
				-      fi 
			 | 
		
	
		
			
			| 
				319
			 | 
			
				317
			 | 
			
			
				       # This is a compromise. backup needs access to things which the user 
			 | 
		
	
		
			
			| 
				320
			 | 
			
				318
			 | 
			
			
				       # doesn't have access to, but also needs to be able to encrypt as the user 
			 | 
		
	
		
			
			| 
				321
			 | 
			
				319
			 | 
			
			
				       # Perhaps there is some better way to do this. 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -329,6 +327,15 @@ function create_backup_script { 
			 | 
		
	
		
			
			| 
				329
			 | 
			
				327
			 | 
			
			
				       shred -zu /home/$MY_USERNAME/temp_private_key.txt 
			 | 
		
	
		
			
			| 
				330
			 | 
			
				328
			 | 
			
			
				       shred -zu /home/$MY_USERNAME/temp_trust.txt 
			 | 
		
	
		
			
			| 
				331
			 | 
			
				329
			 | 
			
			
				   fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				330
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				331
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				332
			 | 
			
			
				+function create_backup_script { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				333
			 | 
			
			
				+  if grep -Fxq "create_backup_script" $COMPLETION_FILE; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				334
			 | 
			
			
				+      return 
			 | 
		
	
		
			
			| 
				
			 | 
			
				335
			 | 
			
			
				+  fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				336
			 | 
			
			
				+  apt-get -y --force-yes install duplicity 
			 | 
		
	
		
			
			| 
				
			 | 
			
				337
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				338
			 | 
			
			
				+  import_gpg_key_to_root 
			 | 
		
	
		
			
			| 
				332
			 | 
			
				339
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				333
			 | 
			
				340
			 | 
			
			
				   echo '#!/bin/bash' > /usr/bin/$BACKUP_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				334
			 | 
			
				341
			 | 
			
			
				   echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -466,6 +473,67 @@ function create_restore_script { 
			 | 
		
	
		
			
			| 
				466
			 | 
			
				473
			 | 
			
			
				       return 
			 | 
		
	
		
			
			| 
				467
			 | 
			
				474
			 | 
			
			
				   fi 
			 | 
		
	
		
			
			| 
				468
			 | 
			
				475
			 | 
			
			
				   apt-get -y --force-yes install duplicity 
			 | 
		
	
		
			
			| 
				
			 | 
			
				476
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				477
			 | 
			
			
				+  import_gpg_key_to_root 
			 | 
		
	
		
			
			| 
				
			 | 
			
				478
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				479
			 | 
			
			
				+  echo '#!/bin/bash' > /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				480
			 | 
			
			
				+  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				481
			 | 
			
			
				+  echo 'GPG_KEY=$1' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				482
			 | 
			
			
				+  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				483
			 | 
			
			
				+  echo 'if [ ! $GPG_KEY ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				484
			 | 
			
			
				+  echo "  if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				485
			 | 
			
			
				+  echo '    echo "You need to specify a GPG key ID with which to restore from backup"' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				486
			 | 
			
			
				+  echo '    exit 1' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				487
			 | 
			
			
				+  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				488
			 | 
			
			
				+  echo "  GPG_KEY='$MY_GPG_PUBLIC_KEY_ID'" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				489
			 | 
			
			
				+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				490
			 | 
			
			
				+  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				491
			 | 
			
			
				+  echo "if [ ! -b $USB_DRIVE ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				492
			 | 
			
			
				+  echo '  echo "Please attach a USB drive"' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				493
			 | 
			
			
				+  echo '  exit 1' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				494
			 | 
			
			
				+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				495
			 | 
			
			
				+  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				496
			 | 
			
			
				+  echo "if [ ! -d $USB_MOUNT ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				497
			 | 
			
			
				+  echo "  mkdir $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				498
			 | 
			
			
				+  echo "  mount $USB_DRIVE $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				499
			 | 
			
			
				+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				500
			 | 
			
			
				+  echo "if [ ! -d $USB_MOUNT/backup ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				501
			 | 
			
			
				+  echo '  echo "No backup directory found on the USB drive."' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				502
			 | 
			
			
				+  echo '  exit 2' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				503
			 | 
			
			
				+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				504
			 | 
			
			
				+  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				505
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				506
			 | 
			
			
				+  echo "if [ -d $PUBLIC_MAILING_LIST_DIRECTORY ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				507
			 | 
			
			
				+  echo '  echo "Restoring public mailing list"' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				508
			 | 
			
			
				+  echo "  duplicity --force file://$USB_MOUNT/backup/publicmailinglist $PUBLIC_MAILING_LIST_DIRECTORY" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				509
			 | 
			
			
				+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				510
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				511
			 | 
			
			
				+  echo "if [ -d $XMPP_DIRECTORY ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				512
			 | 
			
			
				+  echo '  echo "Restoring XMPP settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				513
			 | 
			
			
				+  echo "  duplicity --force file://$USB_MOUNT/backup/xmpp $XMPP_DIRECTORY" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				514
			 | 
			
			
				+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				515
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				516
			 | 
			
			
				+  echo "if [ -d /home/$MY_USERNAME/tempfiles ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				517
			 | 
			
			
				+  echo '  rm -rf /home/$MY_USERNAME/tempfiles/*' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				518
			 | 
			
			
				+  echo 'else' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				519
			 | 
			
			
				+  echo '  mkdir /home/$MY_USERNAME/tempfiles' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				520
			 | 
			
			
				+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				521
			 | 
			
			
				+  echo 'echo "Restoring web content and miscellaneous files"' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				522
			 | 
			
			
				+  echo "duplicity --force file://$USB_MOUNT/backup/tempfiles /home/$MY_USERNAME/tempfiles" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				523
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				524
			 | 
			
			
				+  echo "if [ -d /home/$MY_USERNAME/Maildir ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				525
			 | 
			
			
				+  echo '  echo "Restoring emails"' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				526
			 | 
			
			
				+  echo "  duplicity --force file://$USB_MOUNT/backup/Maildir /home/$MY_USERNAME/Maildir" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				527
			 | 
			
			
				+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				528
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				529
			 | 
			
			
				+  echo "if [ -d /var/cache/minidlna ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				530
			 | 
			
			
				+  echo '  echo "Restoring DLNA cache"' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				531
			 | 
			
			
				+  echo "  duplicity --force file://$USB_MOUNT/backup/dlna /var/cache/minidlna" >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				532
			 | 
			
			
				+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				533
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				534
			 | 
			
			
				+  echo 'echo "Restore completed"' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				535
			 | 
			
			
				+  echo 'exit 0' >> /usr/bin/$RESTORE_SCRIPT_NAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				536
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				469
			 | 
			
				537
			 | 
			
			
				   echo 'create_restore_script' >> $COMPLETION_FILE 
			 | 
		
	
		
			
			| 
				470
			 | 
			
				538
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				471
			 | 
			
				539
			 | 
			
			
				  
			 |