Bladeren bron

Selectively restore applications from a remote server

Bob Mottram 9 jaren geleden
bovenliggende
commit
a15651a837
1 gewijzigde bestanden met toevoegingen van 78 en 2 verwijderingen
  1. 78
    2
      src/freedombone-controlpanel

+ 78
- 2
src/freedombone-controlpanel Bestand weergeven

@@ -556,6 +556,83 @@ function restore_from_usb {
556 556
     any_key
557 557
 }
558 558
 
559
+function restore_from_remote {
560
+    remote_domain_name=$1
561
+
562
+    while true
563
+    do
564
+        data=$(tempfile 2>/dev/null)
565
+        trap "rm -f $data" 0 1 2 5 15
566
+        dialog --backtitle $"Freedombone Control Panel" \
567
+               --title $"Restore from ${remote_domain_name}" \
568
+               --radiolist $"Choose an application to restore:" 30 70 27 \
569
+               1 $"Everything" on \
570
+               2 $"Return to the backup and restore menu" off \
571
+               3 $"Configuration files" off \
572
+               4 $"MariaDB settings" off \
573
+               5 $"Let's Encrypt account" off \
574
+               6 $"Mutt email client settings" off \
575
+               7 $"GPG keys" off \
576
+               8 $"Email processing rules" off \
577
+               9 $"Spam filtering rules" off \
578
+               10 $"Administrator's README file" off \
579
+               11 $"IPFS" off \
580
+               12 $"SSH keys" off \
581
+               13 $"User configuration files" off \
582
+               14 $"SSL/TLS certificates" off \
583
+               15 $"Personal settings" off \
584
+               16 $"Mailing List" off \
585
+               17 $"XMPP chat" off \
586
+               18 $"GNU Social" off \
587
+               19 $"Hubzilla" off \
588
+               20 $"Owncloud" off \
589
+               21 $"Gogs" off \
590
+               22 $"Wiki" off \
591
+               23 $"Blog" off \
592
+               24 $"CJDNS" off \
593
+               25 $"Email" off \
594
+               26 $"DLNA" off \
595
+               27 $"VoIP" off \
596
+               28 $"Tox" off 2> $data
597
+        sel=$?
598
+        case $sel in
599
+            1) break;;
600
+            255) break;;
601
+        esac
602
+        case $(cat $data) in
603
+            1) ${PROJECT_NAME}-restore-remote $remote_domain_name;;
604
+            2) return;;
605
+            3) ${PROJECT_NAME}-restore-remote $remote_domain_name configuration;;
606
+            4) ${PROJECT_NAME}-restore-remote $remote_domain_name mariadb;;
607
+            5) ${PROJECT_NAME}-restore-remote $remote_domain_name letsencrypt;;
608
+            6) ${PROJECT_NAME}-restore-remote $remote_domain_name mutt;;
609
+            7) ${PROJECT_NAME}-restore-remote $remote_domain_name gpg;;
610
+            8) ${PROJECT_NAME}-restore-remote $remote_domain_name procmail;;
611
+            9) ${PROJECT_NAME}-restore-remote $remote_domain_name spamassassin;;
612
+            10) ${PROJECT_NAME}-restore-remote $remote_domain_name readme;;
613
+            11) ${PROJECT_NAME}-restore-remote $remote_domain_name ipfs;;
614
+            12) ${PROJECT_NAME}-restore-remote $remote_domain_name ssh;;
615
+            13) ${PROJECT_NAME}-restore-remote $remote_domain_name userconfig;;
616
+            14) ${PROJECT_NAME}-restore-remote $remote_domain_name certs;;
617
+            15) ${PROJECT_NAME}-restore-remote $remote_domain_name personal;;
618
+            16) ${PROJECT_NAME}-restore-remote $remote_domain_name mailinglist;;
619
+            17) ${PROJECT_NAME}-restore-remote $remote_domain_name xmpp;;
620
+            18) ${PROJECT_NAME}-restore-remote $remote_domain_name gnusocial;;
621
+            19) ${PROJECT_NAME}-restore-remote $remote_domain_name hubzilla;;
622
+            20) ${PROJECT_NAME}-restore-remote $remote_domain_name owncloud;;
623
+            21) ${PROJECT_NAME}-restore-remote $remote_domain_name gogs;;
624
+            22) ${PROJECT_NAME}-restore-remote $remote_domain_name wiki;;
625
+            23) ${PROJECT_NAME}-restore-remote $remote_domain_name blog;;
626
+            24) ${PROJECT_NAME}-restore-remote $remote_domain_name cjdns;;
627
+            25) ${PROJECT_NAME}-restore-remote $remote_domain_name email;;
628
+            26) ${PROJECT_NAME}-restore-remote $remote_domain_name dlna;;
629
+            27) ${PROJECT_NAME}-restore-remote $remote_domain_name voip;;
630
+            28) ${PROJECT_NAME}-restore-remote $remote_domain_name tox;;
631
+        esac
632
+    done
633
+    any_key
634
+}
635
+
559 636
 function restore_data {
560 637
     dialog --title $"Restore data from USB" \
561 638
            --msgbox $"Plug in your backup USB drive" 6 40
@@ -591,8 +668,7 @@ function restore_data_remote {
591 668
                 return
592 669
             fi
593 670
 
594
-            ${PROJECT_NAME}-restore-remote $friend_server_domain_name
595
-            any_key
671
+            restore_from_remote $friend_server_domain_name
596 672
             ;;
597 673
     esac
598 674
 }