Explorar el Código

Remember previous settings during interactive install

Bob Mottram hace 10 años
padre
commit
24940da58b
Se han modificado 1 ficheros con 61 adiciones y 23 borrados
  1. 61
    23
      src/freedombone

+ 61
- 23
src/freedombone Ver fichero

488
 }
488
 }
489
 
489
 
490
 function interactive_configuration {
490
 function interactive_configuration {
491
+  # create a temporary copy of the configuration file
492
+  # which can be used to pre-populate selections
493
+  if [ -f $CONFIGURATION_FILE ]; then
494
+      cp $CONFIGURATION_FILE temp.cfg
495
+  fi
496
+
491
   dialog --title "Freedombone" --msgbox "Welcome to the Freedombone interactive installer. Communications freedom is only a short time away.\n\nEnsure that you have your domain and dynamic DNS settings ready.\n\nFor more information please visit $FREEDOMBONE_WEBSITE or send a Bitmessage to $FREEDOMBONE_BITMESSAGE" 15 50
497
   dialog --title "Freedombone" --msgbox "Welcome to the Freedombone interactive installer. Communications freedom is only a short time away.\n\nEnsure that you have your domain and dynamic DNS settings ready.\n\nFor more information please visit $FREEDOMBONE_WEBSITE or send a Bitmessage to $FREEDOMBONE_BITMESSAGE" 15 50
492
 
498
 
493
   data=$(tempfile 2>/dev/null)
499
   data=$(tempfile 2>/dev/null)
517
       7) SYSTEM_TYPE=$VARIANT_SOCIAL;;
523
       7) SYSTEM_TYPE=$VARIANT_SOCIAL;;
518
       8) SYSTEM_TYPE=$VARIANT_MEDIA;;
524
       8) SYSTEM_TYPE=$VARIANT_MEDIA;;
519
   esac
525
   esac
526
+  save_configuration_file
520
 
527
 
521
   data=$(tempfile 2>/dev/null)
528
   data=$(tempfile 2>/dev/null)
522
   trap "rm -f $data" 0 1 2 5 15
529
   trap "rm -f $data" 0 1 2 5 15
523
   dialog --title "Select the user account to install as" \
530
   dialog --title "Select the user account to install as" \
524
       --backtitle "Freedombone Configuration" \
531
       --backtitle "Freedombone Configuration" \
525
-      --dselect /home/ 14 40 2> $data
532
+      --dselect "/home/$(grep 'MY_USERNAME' temp.cfg | awk -F '=' '{print $2}')" 14 40 2> $data
526
   sel=$?
533
   sel=$?
527
   case $sel in
534
   case $sel in
528
       0) MY_USERNAME=$(cat $data | awk -F '/' '{print $3}');;
535
       0) MY_USERNAME=$(cat $data | awk -F '/' '{print $3}');;
537
       echo "The directory /home/$MY_USERNAME does not exist"
544
       echo "The directory /home/$MY_USERNAME does not exist"
538
       exit 6437
545
       exit 6437
539
   fi
546
   fi
547
+  save_configuration_file
540
 
548
 
541
-  dialog --title "Install Target" \
542
-      --backtitle "Freedombone Configuration" \
543
-      --defaultno \
544
-      --yesno "\nAre you installing onto a Beaglebone Black?" 7 60
549
+  if [[ $(grep "INSTALLING_ON_BBB" temp.cfg | awk -F '=' '{print $2}') == "yes" ]]; then
550
+      dialog --title "Install Target" \
551
+          --backtitle "Freedombone Configuration" \
552
+          --yesno "\nAre you installing onto a Beaglebone Black?" 7 60
553
+  else
554
+      dialog --title "Install Target" \
555
+          --backtitle "Freedombone Configuration" \
556
+          --defaultno \
557
+          --yesno "\nAre you installing onto a Beaglebone Black?" 7 60
558
+  fi
545
   sel=$?
559
   sel=$?
546
   case $sel in
560
   case $sel in
547
       0) INSTALLING_ON_BBB="yes";;
561
       0) INSTALLING_ON_BBB="yes";;
548
       1) INSTALLING_ON_BBB="no";;
562
       1) INSTALLING_ON_BBB="no";;
549
       255) exit 0;;
563
       255) exit 0;;
550
   esac
564
   esac
565
+  save_configuration_file
551
 
566
 
552
   data=$(tempfile 2>/dev/null)
567
   data=$(tempfile 2>/dev/null)
553
   trap "rm -f $data" 0 1 2 5 15
568
   trap "rm -f $data" 0 1 2 5 15
589
       14) DDNS_PROVIDER="default@changeip.com";;
604
       14) DDNS_PROVIDER="default@changeip.com";;
590
       255) exit 0;;
605
       255) exit 0;;
591
   esac
606
   esac
607
+  save_configuration_file
592
 
608
 
593
   while [ ! $DDNS_USERNAME ]
609
   while [ ! $DDNS_USERNAME ]
594
   do
610
   do
595
       data=$(tempfile 2>/dev/null)
611
       data=$(tempfile 2>/dev/null)
596
       trap "rm -f $data" 0 1 2 5 15
612
       trap "rm -f $data" 0 1 2 5 15
597
       dialog --backtitle "Freedombone Configuration" \
613
       dialog --backtitle "Freedombone Configuration" \
598
-          --inputbox "Dynamic DNS provider username" 10 30 2> $data
614
+          --inputbox "Dynamic DNS provider username" 10 30 "$(grep 'DDNS_USERNAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
599
       sel=$?
615
       sel=$?
600
       case $sel in
616
       case $sel in
601
           0) DDNS_USERNAME=$(cat $data);;
617
           0) DDNS_USERNAME=$(cat $data);;
603
           255) exit 0;;
619
           255) exit 0;;
604
       esac
620
       esac
605
   done
621
   done
622
+  save_configuration_file
606
 
623
 
607
   while [ ! $DDNS_PASSWORD ]
624
   while [ ! $DDNS_PASSWORD ]
608
   do
625
   do
611
       dialog --backtitle "Freedombone Configuration" \
628
       dialog --backtitle "Freedombone Configuration" \
612
           --clear \
629
           --clear \
613
           --insecure \
630
           --insecure \
614
-          --passwordbox "Dynamic DNS provider password" 10 30 2> $data
631
+          --passwordbox "Dynamic DNS provider password" 10 30 "$(grep 'DDNS_PASSWORD' temp.cfg | awk -F '=' '{print $2}')" 2> $data
615
       sel=$?
632
       sel=$?
616
       case $sel in
633
       case $sel in
617
           0) DDNS_PASSWORD=$(cat $data);;
634
           0) DDNS_PASSWORD=$(cat $data);;
623
           DDNS_PASSWORD=""
640
           DDNS_PASSWORD=""
624
       fi
641
       fi
625
   done
642
   done
643
+  save_configuration_file
626
 
644
 
627
   while [ ! $MY_NAME ]
645
   while [ ! $MY_NAME ]
628
   do
646
   do
629
       data=$(tempfile 2>/dev/null)
647
       data=$(tempfile 2>/dev/null)
630
       trap "rm -f $data" 0 1 2 5 15
648
       trap "rm -f $data" 0 1 2 5 15
631
       dialog --backtitle "Freedombone Configuration" \
649
       dialog --backtitle "Freedombone Configuration" \
632
-          --inputbox "Your full name (or nick)" 10 30 2> $data
650
+          --inputbox "Your full name (or nick)" 10 30 "$(grep 'MY_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
633
       sel=$?
651
       sel=$?
634
       case $sel in
652
       case $sel in
635
           0) MY_NAME=$(cat $data);;
653
           0) MY_NAME=$(cat $data);;
637
           255) exit 0;;
655
           255) exit 0;;
638
       esac
656
       esac
639
   done
657
   done
658
+  save_configuration_file
640
 
659
 
641
   data=$(tempfile 2>/dev/null)
660
   data=$(tempfile 2>/dev/null)
642
   trap "rm -f $data" 0 1 2 5 15
661
   trap "rm -f $data" 0 1 2 5 15
643
   dialog --backtitle "Freedombone Configuration" \
662
   dialog --backtitle "Freedombone Configuration" \
644
       --title "Local Network Configuration" \
663
       --title "Local Network Configuration" \
645
       --form "\nPlease enter the IP addresses:" 11 55 3 \
664
       --form "\nPlease enter the IP addresses:" 11 55 3 \
646
-      "This system:" 1 1 "192.168.1.60" 1 16 16 15 \
647
-      "Internet router:" 2 1 "192.168.1.254" 2 16 16 15 \
665
+      "This system:" 1 1 "$(grep 'LOCAL_NETWORK_STATIC_IP_ADDRESS' temp.cfg | awk -F '=' '{print $2}')" 1 16 16 15 \
666
+      "Internet router:" 2 1 "$(grep 'ROUTER_IP_ADDRESS' temp.cfg | awk -F '=' '{print $2}')" 2 16 16 15 \
648
       2> $data
667
       2> $data
649
   sel=$?
668
   sel=$?
650
   case $sel in
669
   case $sel in
653
   esac
672
   esac
654
   LOCAL_NETWORK_STATIC_IP_ADDRESS=$(cat $data | sed -n 1p)
673
   LOCAL_NETWORK_STATIC_IP_ADDRESS=$(cat $data | sed -n 1p)
655
   ROUTER_IP_ADDRESS=$(cat $data | sed -n 2p)
674
   ROUTER_IP_ADDRESS=$(cat $data | sed -n 2p)
675
+  save_configuration_file
656
 
676
 
657
   data=$(tempfile 2>/dev/null)
677
   data=$(tempfile 2>/dev/null)
658
   trap "rm -f $data" 0 1 2 5 15
678
   trap "rm -f $data" 0 1 2 5 15
659
-  dialog --title "Mesh Networking" \
660
-      --backtitle "Freedombone Configuration" \
661
-      --defaultno \
662
-      --yesno "\nDo you want to enable CJDNS?" 7 60
679
+  if [[ $(grep 'ENABLE_CJDNS' temp.cfg | awk -F '=' '{print $2}') == "yes" ]]; then
680
+      dialog --title "Mesh Networking" \
681
+          --backtitle "Freedombone Configuration" \
682
+          --yesno "\nDo you want to enable CJDNS?" 7 60
683
+  else
684
+      dialog --title "Mesh Networking" \
685
+          --backtitle "Freedombone Configuration" \
686
+          --defaultno \
687
+          --yesno "\nDo you want to enable CJDNS?" 7 60
688
+  fi
663
   sel=$?
689
   sel=$?
664
   case $sel in
690
   case $sel in
665
       0) ENABLE_CJDNS="yes";;
691
       0) ENABLE_CJDNS="yes";;
666
       1) ENABLE_CJDNS="no";;
692
       1) ENABLE_CJDNS="no";;
667
       255) exit 0;;
693
       255) exit 0;;
668
   esac
694
   esac
695
+  save_configuration_file
669
 
696
 
670
   if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
697
   if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
671
       while [ ! $WIKI_DOMAIN_NAME ]
698
       while [ ! $WIKI_DOMAIN_NAME ]
675
           dialog --backtitle "Freedombone Configuration" \
702
           dialog --backtitle "Freedombone Configuration" \
676
                  --title "Wiki Configuration" \
703
                  --title "Wiki Configuration" \
677
                  --form "\nPlease enter your wiki details:" 11 55 3 \
704
                  --form "\nPlease enter your wiki details:" 11 55 3 \
678
-                 "Title:" 1 1 "$WIKI_TITLE" 1 16 25 40 \
679
-                 "Domain:" 2 1 "$WIKI_DOMAIN_NAME" 2 16 25 40 \
705
+                 "Title:" 1 1 "$(grep 'WIKI_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 25 40 \
706
+                 "Domain:" 2 1 "$(grep 'WIKI_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 25 40 \
680
                  2> $data
707
                  2> $data
681
           sel=$?
708
           sel=$?
682
           case $sel in
709
           case $sel in
698
               fi
725
               fi
699
           fi
726
           fi
700
       done
727
       done
728
+      save_configuration_file
701
   fi
729
   fi
702
 
730
 
703
   if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
731
   if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
708
           dialog --backtitle "Freedombone Configuration" \
736
           dialog --backtitle "Freedombone Configuration" \
709
                  --title "Blog Configuration" \
737
                  --title "Blog Configuration" \
710
                  --form "\nPlease enter your blog details:" 11 55 3 \
738
                  --form "\nPlease enter your blog details:" 11 55 3 \
711
-                 "Title:" 1 1 "My Blog" 1 16 25 30 \
712
-                 "Domain:" 2 1 "" 2 16 25 30 \
739
+                 "Title:" 1 1 "$(grep 'MY_BLOG_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 25 30 \
740
+                 "Domain:" 2 1 "$(grep 'FULLBLOG_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 25 30 \
713
                  2> $data
741
                  2> $data
714
           sel=$?
742
           sel=$?
715
           case $sel in
743
           case $sel in
734
               fi
762
               fi
735
           fi
763
           fi
736
       done
764
       done
765
+      save_configuration_file
737
   fi
766
   fi
738
 
767
 
739
   if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
768
   if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
744
           dialog --backtitle "Freedombone Configuration" \
773
           dialog --backtitle "Freedombone Configuration" \
745
                  --title "Owncloud Configuration" \
774
                  --title "Owncloud Configuration" \
746
                  --form "\nPlease enter your Owncloud details:" 11 55 3 \
775
                  --form "\nPlease enter your Owncloud details:" 11 55 3 \
747
-                 "Domain:" 1 1 "" 1 16 25 30 \
776
+                 "Domain:" 1 1 "$(grep 'OWNCLOUD_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 25 30 \
748
                  2> $data
777
                  2> $data
749
           sel=$?
778
           sel=$?
750
           case $sel in
779
           case $sel in
765
               fi
794
               fi
766
           fi
795
           fi
767
       done
796
       done
797
+      save_configuration_file
768
   fi
798
   fi
769
 
799
 
770
   if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
800
   if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
775
           dialog --backtitle "Freedombone Configuration" \
805
           dialog --backtitle "Freedombone Configuration" \
776
                  --title "RedMatrix Configuration" \
806
                  --title "RedMatrix Configuration" \
777
                  --form "\nPlease enter your RedMatrix details:" 11 55 3 \
807
                  --form "\nPlease enter your RedMatrix details:" 11 55 3 \
778
-                 "Domain:" 1 1 "" 1 16 25 30 \
808
+                 "Domain:" 1 1 "$(grep 'REDMATRIX_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 25 30 \
779
                  2> $data
809
                  2> $data
780
           sel=$?
810
           sel=$?
781
           case $sel in
811
           case $sel in
796
               fi
826
               fi
797
           fi
827
           fi
798
       done
828
       done
829
+      save_configuration_file
799
   fi
830
   fi
800
 
831
 
801
   if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
832
   if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
806
           dialog --backtitle "Freedombone Configuration" \
837
           dialog --backtitle "Freedombone Configuration" \
807
                  --title "Microblog Configuration" \
838
                  --title "Microblog Configuration" \
808
                  --form "\nPlease enter your Microblog details:" 11 55 3 \
839
                  --form "\nPlease enter your Microblog details:" 11 55 3 \
809
-                 "Domain:" 1 1 "" 1 16 25 30 \
840
+                 "Domain:" 1 1 "$(grep 'MICROBLOG_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 25 30 \
810
                  2> $data
841
                  2> $data
811
           sel=$?
842
           sel=$?
812
           case $sel in
843
           case $sel in
830
               fi
861
               fi
831
           fi
862
           fi
832
       done
863
       done
864
+      save_configuration_file
833
   fi
865
   fi
834
 
866
 
835
   if [ ! $DOMAIN_NAME ]; then
867
   if [ ! $DOMAIN_NAME ]; then
838
           data=$(tempfile 2>/dev/null)
870
           data=$(tempfile 2>/dev/null)
839
           trap "rm -f $data" 0 1 2 5 15
871
           trap "rm -f $data" 0 1 2 5 15
840
           dialog --backtitle "Freedombone Configuration" \
872
           dialog --backtitle "Freedombone Configuration" \
841
-              --inputbox "Domain name" 10 30 2> $data
873
+              --inputbox "Domain name" 10 30 "$(grep 'DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
842
           sel=$?
874
           sel=$?
843
           case $sel in
875
           case $sel in
844
               0) DOMAIN_NAME=$(cat $data);;
876
               0) DOMAIN_NAME=$(cat $data);;
846
               255) exit 0;;
878
               255) exit 0;;
847
           esac
879
           esac
848
       done
880
       done
881
+      save_configuration_file
849
   fi
882
   fi
850
 
883
 
851
   while [ ! $MY_EMAIL_ADDRESS ]
884
   while [ ! $MY_EMAIL_ADDRESS ]
853
       data=$(tempfile 2>/dev/null)
886
       data=$(tempfile 2>/dev/null)
854
       trap "rm -f $data" 0 1 2 5 15
887
       trap "rm -f $data" 0 1 2 5 15
855
       dialog --backtitle "Freedombone Configuration" \
888
       dialog --backtitle "Freedombone Configuration" \
856
-          --inputbox "Your email address" 10 30 "$MY_USERNAME@$DOMAIN_NAME" 2> $data
889
+          --inputbox "Your email address" 10 30 "$(grep 'MY_EMAIL_ADDRESS' temp.cfg | awk -F '=' '{print $2}')" 2> $data
857
       sel=$?
890
       sel=$?
858
       case $sel in
891
       case $sel in
859
           0) MY_EMAIL_ADDRESS=$(cat $data);;
892
           0) MY_EMAIL_ADDRESS=$(cat $data);;
864
 
897
 
865
   save_configuration_file
898
   save_configuration_file
866
 
899
 
900
+  # delete the temporary configuration file
901
+  if [ -f temp.cfg ]; then
902
+      shred -zu temp.cfg
903
+  fi
904
+
867
   FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
905
   FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
868
 
906
 
869
   dialog --title "Encrypted backup to other servers" \
907
   dialog --title "Encrypted backup to other servers" \