|
@@ -40,6 +40,18 @@ ADMIN_USER=
|
40
|
40
|
UPGRADE_SCRIPT_NAME="${PROJECT_NAME}-upgrade"
|
41
|
41
|
UPDATE_DATE_SCRIPT=/usr/bin/updatedate
|
42
|
42
|
|
|
43
|
+USB_DRIVE=sdb
|
|
44
|
+# get default USB from config file
|
|
45
|
+CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
|
|
46
|
+if [ -f $CONFIG_FILE ]; then
|
|
47
|
+ if grep -q "USB_DRIVE=" $CONFIG_FILE; then
|
|
48
|
+ USB_DRIVE=$(cat $CONFIG_FILE | grep "USB_DRIVE=" | awk -F '=' '{print $2}')
|
|
49
|
+ if [[ $USB_DRIVE == *"dev"* ]]; then
|
|
50
|
+ USB_DRIVE=$(echo ${USB_DRIVE} | awk -F '/' '{print $3}' | sed 's|1||g' | sed 's|2||g')
|
|
51
|
+ fi
|
|
52
|
+ fi
|
|
53
|
+fi
|
|
54
|
+
|
43
|
55
|
function any_key {
|
44
|
56
|
echo ' '
|
45
|
57
|
read -n1 -r -p $"Press any key to continue..." key
|
|
@@ -469,14 +481,88 @@ function backup_data {
|
469
|
481
|
any_key
|
470
|
482
|
}
|
471
|
483
|
|
|
484
|
+function restore_from_usb {
|
|
485
|
+ while true
|
|
486
|
+ do
|
|
487
|
+ data=$(tempfile 2>/dev/null)
|
|
488
|
+ trap "rm -f $data" 0 1 2 5 15
|
|
489
|
+ dialog --backtitle $"Freedombone Control Panel" \
|
|
490
|
+ --title $"Restore from USB backup" \
|
|
491
|
+ --radiolist $"Choose an application to restore:" 30 70 27 \
|
|
492
|
+ 1 $"Everything" on \
|
|
493
|
+ 2 $"Return to the backup and restore menu" off \
|
|
494
|
+ 3 $"Configuration files" off \
|
|
495
|
+ 4 $"MariaDB settings" off \
|
|
496
|
+ 5 $"Let's Encrypt account" off \
|
|
497
|
+ 6 $"Mutt email client settings" off \
|
|
498
|
+ 7 $"GPG keys" off \
|
|
499
|
+ 8 $"Email processing rules" off \
|
|
500
|
+ 9 $"Spam filtering rules" off \
|
|
501
|
+ 10 $"Administrator's README file" off \
|
|
502
|
+ 11 $"IPFS" off \
|
|
503
|
+ 12 $"SSH keys" off \
|
|
504
|
+ 13 $"User configuration files" off \
|
|
505
|
+ 14 $"SSL/TLS certificates" off \
|
|
506
|
+ 15 $"Personal settings" off \
|
|
507
|
+ 16 $"Mailing List" off \
|
|
508
|
+ 17 $"XMPP chat" off \
|
|
509
|
+ 18 $"GNU Social" off \
|
|
510
|
+ 19 $"Hubzilla" off \
|
|
511
|
+ 20 $"Owncloud" off \
|
|
512
|
+ 21 $"Gogs" off \
|
|
513
|
+ 22 $"Wiki" off \
|
|
514
|
+ 23 $"Blog" off \
|
|
515
|
+ 24 $"CJDNS" off \
|
|
516
|
+ 25 $"Email" off \
|
|
517
|
+ 26 $"DLNA" off \
|
|
518
|
+ 27 $"VoIP" off \
|
|
519
|
+ 28 $"Tox" off 2> $data
|
|
520
|
+ sel=$?
|
|
521
|
+ case $sel in
|
|
522
|
+ 1) break;;
|
|
523
|
+ 255) break;;
|
|
524
|
+ esac
|
|
525
|
+ case $(cat $data) in
|
|
526
|
+ 1) freedombone-restore-local $USB_DRIVE;;
|
|
527
|
+ 2) return;;
|
|
528
|
+ 3) freedombone-restore-local $USB_DRIVE configuration;;
|
|
529
|
+ 4) freedombone-restore-local $USB_DRIVE mariadb;;
|
|
530
|
+ 5) freedombone-restore-local $USB_DRIVE letsencrypt;;
|
|
531
|
+ 6) freedombone-restore-local $USB_DRIVE mutt;;
|
|
532
|
+ 7) freedombone-restore-local $USB_DRIVE gpg;;
|
|
533
|
+ 8) freedombone-restore-local $USB_DRIVE procmail;;
|
|
534
|
+ 9) freedombone-restore-local $USB_DRIVE spamassassin;;
|
|
535
|
+ 10) freedombone-restore-local $USB_DRIVE readme;;
|
|
536
|
+ 11) freedombone-restore-local $USB_DRIVE ipfs;;
|
|
537
|
+ 12) freedombone-restore-local $USB_DRIVE ssh;;
|
|
538
|
+ 13) freedombone-restore-local $USB_DRIVE userconfig;;
|
|
539
|
+ 14) freedombone-restore-local $USB_DRIVE certs;;
|
|
540
|
+ 15) freedombone-restore-local $USB_DRIVE personal;;
|
|
541
|
+ 16) freedombone-restore-local $USB_DRIVE mailinglist;;
|
|
542
|
+ 17) freedombone-restore-local $USB_DRIVE xmpp;;
|
|
543
|
+ 18) freedombone-restore-local $USB_DRIVE gnusocial;;
|
|
544
|
+ 19) freedombone-restore-local $USB_DRIVE hubzilla;;
|
|
545
|
+ 20) freedombone-restore-local $USB_DRIVE owncloud;;
|
|
546
|
+ 21) freedombone-restore-local $USB_DRIVE gogs;;
|
|
547
|
+ 22) freedombone-restore-local $USB_DRIVE wiki;;
|
|
548
|
+ 23) freedombone-restore-local $USB_DRIVE blog;;
|
|
549
|
+ 24) freedombone-restore-local $USB_DRIVE cjdns;;
|
|
550
|
+ 25) freedombone-restore-local $USB_DRIVE email;;
|
|
551
|
+ 26) freedombone-restore-local $USB_DRIVE dlna;;
|
|
552
|
+ 27) freedombone-restore-local $USB_DRIVE voip;;
|
|
553
|
+ 28) freedombone-restore-local $USB_DRIVE tox;;
|
|
554
|
+ esac
|
|
555
|
+ done
|
|
556
|
+ any_key
|
|
557
|
+}
|
|
558
|
+
|
472
|
559
|
function restore_data {
|
473
|
560
|
dialog --title $"Restore data from USB" \
|
474
|
561
|
--msgbox $"Plug in your backup USB drive" 6 40
|
475
|
562
|
clear
|
476
|
563
|
echo ' '
|
477
|
564
|
echo $'Enter the passphrase for your LUKS encrypted backup drive:'
|
478
|
|
- ${PROJECT_NAME}-restore-local
|
479
|
|
- any_key
|
|
565
|
+ restore_from_usb
|
480
|
566
|
}
|
481
|
567
|
|
482
|
568
|
function restore_data_remote {
|