Browse Source

Remember previous settings during interactive install

Bob Mottram 10 years ago
parent
commit
24940da58b
1 changed files with 61 additions and 23 deletions
  1. 61
    23
      src/freedombone

+ 61
- 23
src/freedombone View File

@@ -488,6 +488,12 @@ function save_configuration_file {
488 488
 }
489 489
 
490 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 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 499
   data=$(tempfile 2>/dev/null)
@@ -517,12 +523,13 @@ function interactive_configuration {
517 523
       7) SYSTEM_TYPE=$VARIANT_SOCIAL;;
518 524
       8) SYSTEM_TYPE=$VARIANT_MEDIA;;
519 525
   esac
526
+  save_configuration_file
520 527
 
521 528
   data=$(tempfile 2>/dev/null)
522 529
   trap "rm -f $data" 0 1 2 5 15
523 530
   dialog --title "Select the user account to install as" \
524 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 533
   sel=$?
527 534
   case $sel in
528 535
       0) MY_USERNAME=$(cat $data | awk -F '/' '{print $3}');;
@@ -537,17 +544,25 @@ function interactive_configuration {
537 544
       echo "The directory /home/$MY_USERNAME does not exist"
538 545
       exit 6437
539 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 559
   sel=$?
546 560
   case $sel in
547 561
       0) INSTALLING_ON_BBB="yes";;
548 562
       1) INSTALLING_ON_BBB="no";;
549 563
       255) exit 0;;
550 564
   esac
565
+  save_configuration_file
551 566
 
552 567
   data=$(tempfile 2>/dev/null)
553 568
   trap "rm -f $data" 0 1 2 5 15
@@ -589,13 +604,14 @@ function interactive_configuration {
589 604
       14) DDNS_PROVIDER="default@changeip.com";;
590 605
       255) exit 0;;
591 606
   esac
607
+  save_configuration_file
592 608
 
593 609
   while [ ! $DDNS_USERNAME ]
594 610
   do
595 611
       data=$(tempfile 2>/dev/null)
596 612
       trap "rm -f $data" 0 1 2 5 15
597 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 615
       sel=$?
600 616
       case $sel in
601 617
           0) DDNS_USERNAME=$(cat $data);;
@@ -603,6 +619,7 @@ function interactive_configuration {
603 619
           255) exit 0;;
604 620
       esac
605 621
   done
622
+  save_configuration_file
606 623
 
607 624
   while [ ! $DDNS_PASSWORD ]
608 625
   do
@@ -611,7 +628,7 @@ function interactive_configuration {
611 628
       dialog --backtitle "Freedombone Configuration" \
612 629
           --clear \
613 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 632
       sel=$?
616 633
       case $sel in
617 634
           0) DDNS_PASSWORD=$(cat $data);;
@@ -623,13 +640,14 @@ function interactive_configuration {
623 640
           DDNS_PASSWORD=""
624 641
       fi
625 642
   done
643
+  save_configuration_file
626 644
 
627 645
   while [ ! $MY_NAME ]
628 646
   do
629 647
       data=$(tempfile 2>/dev/null)
630 648
       trap "rm -f $data" 0 1 2 5 15
631 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 651
       sel=$?
634 652
       case $sel in
635 653
           0) MY_NAME=$(cat $data);;
@@ -637,14 +655,15 @@ function interactive_configuration {
637 655
           255) exit 0;;
638 656
       esac
639 657
   done
658
+  save_configuration_file
640 659
 
641 660
   data=$(tempfile 2>/dev/null)
642 661
   trap "rm -f $data" 0 1 2 5 15
643 662
   dialog --backtitle "Freedombone Configuration" \
644 663
       --title "Local Network Configuration" \
645 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 667
       2> $data
649 668
   sel=$?
650 669
   case $sel in
@@ -653,19 +672,27 @@ function interactive_configuration {
653 672
   esac
654 673
   LOCAL_NETWORK_STATIC_IP_ADDRESS=$(cat $data | sed -n 1p)
655 674
   ROUTER_IP_ADDRESS=$(cat $data | sed -n 2p)
675
+  save_configuration_file
656 676
 
657 677
   data=$(tempfile 2>/dev/null)
658 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 689
   sel=$?
664 690
   case $sel in
665 691
       0) ENABLE_CJDNS="yes";;
666 692
       1) ENABLE_CJDNS="no";;
667 693
       255) exit 0;;
668 694
   esac
695
+  save_configuration_file
669 696
 
670 697
   if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
671 698
       while [ ! $WIKI_DOMAIN_NAME ]
@@ -675,8 +702,8 @@ function interactive_configuration {
675 702
           dialog --backtitle "Freedombone Configuration" \
676 703
                  --title "Wiki Configuration" \
677 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 707
                  2> $data
681 708
           sel=$?
682 709
           case $sel in
@@ -698,6 +725,7 @@ function interactive_configuration {
698 725
               fi
699 726
           fi
700 727
       done
728
+      save_configuration_file
701 729
   fi
702 730
 
703 731
   if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
@@ -708,8 +736,8 @@ function interactive_configuration {
708 736
           dialog --backtitle "Freedombone Configuration" \
709 737
                  --title "Blog Configuration" \
710 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 741
                  2> $data
714 742
           sel=$?
715 743
           case $sel in
@@ -734,6 +762,7 @@ function interactive_configuration {
734 762
               fi
735 763
           fi
736 764
       done
765
+      save_configuration_file
737 766
   fi
738 767
 
739 768
   if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
@@ -744,7 +773,7 @@ function interactive_configuration {
744 773
           dialog --backtitle "Freedombone Configuration" \
745 774
                  --title "Owncloud Configuration" \
746 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 777
                  2> $data
749 778
           sel=$?
750 779
           case $sel in
@@ -765,6 +794,7 @@ function interactive_configuration {
765 794
               fi
766 795
           fi
767 796
       done
797
+      save_configuration_file
768 798
   fi
769 799
 
770 800
   if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
@@ -775,7 +805,7 @@ function interactive_configuration {
775 805
           dialog --backtitle "Freedombone Configuration" \
776 806
                  --title "RedMatrix Configuration" \
777 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 809
                  2> $data
780 810
           sel=$?
781 811
           case $sel in
@@ -796,6 +826,7 @@ function interactive_configuration {
796 826
               fi
797 827
           fi
798 828
       done
829
+      save_configuration_file
799 830
   fi
800 831
 
801 832
   if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
@@ -806,7 +837,7 @@ function interactive_configuration {
806 837
           dialog --backtitle "Freedombone Configuration" \
807 838
                  --title "Microblog Configuration" \
808 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 841
                  2> $data
811 842
           sel=$?
812 843
           case $sel in
@@ -830,6 +861,7 @@ function interactive_configuration {
830 861
               fi
831 862
           fi
832 863
       done
864
+      save_configuration_file
833 865
   fi
834 866
 
835 867
   if [ ! $DOMAIN_NAME ]; then
@@ -838,7 +870,7 @@ function interactive_configuration {
838 870
           data=$(tempfile 2>/dev/null)
839 871
           trap "rm -f $data" 0 1 2 5 15
840 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 874
           sel=$?
843 875
           case $sel in
844 876
               0) DOMAIN_NAME=$(cat $data);;
@@ -846,6 +878,7 @@ function interactive_configuration {
846 878
               255) exit 0;;
847 879
           esac
848 880
       done
881
+      save_configuration_file
849 882
   fi
850 883
 
851 884
   while [ ! $MY_EMAIL_ADDRESS ]
@@ -853,7 +886,7 @@ function interactive_configuration {
853 886
       data=$(tempfile 2>/dev/null)
854 887
       trap "rm -f $data" 0 1 2 5 15
855 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 890
       sel=$?
858 891
       case $sel in
859 892
           0) MY_EMAIL_ADDRESS=$(cat $data);;
@@ -864,6 +897,11 @@ function interactive_configuration {
864 897
 
865 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 905
   FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
868 906
 
869 907
   dialog --title "Encrypted backup to other servers" \