Browse Source

Improving the interactive configuration

Bob Mottram 10 years ago
parent
commit
b7019054df
1 changed files with 105 additions and 4 deletions
  1. 105
    4
      src/freedombone-config

+ 105
- 4
src/freedombone-config View File

@@ -549,13 +549,25 @@ function interactive_configuration {
549 549
   done
550 550
   save_configuration_file
551 551
 
552
+  if [ ! $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
553
+      LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep 'LOCAL_NETWORK_STATIC_IP_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
554
+      if [ ! $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
555
+          LOCAL_NETWORK_STATIC_IP_ADDRESS='192.168..'
556
+      fi
557
+  fi
558
+  if [ ! $ROUTER_IP_ADDRESS ]; then
559
+      ROUTER_IP_ADDRESS=$(grep 'ROUTER_IP_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
560
+      if [ ! $ROUTER_IP_ADDRESS ]; then
561
+          ROUTER_IP_ADDRESS='192.168..'
562
+      fi
563
+  fi
552 564
   data=$(tempfile 2>/dev/null)
553 565
   trap "rm -f $data" 0 1 2 5 15
554 566
   dialog --backtitle "Freedombone Configuration" \
555 567
       --title "Local Network Configuration" \
556 568
       --form "\nPlease enter the IP addresses:" 11 55 3 \
557
-      "This system:" 1 1 "$(grep 'LOCAL_NETWORK_STATIC_IP_ADDRESS' temp.cfg | awk -F '=' '{print $2}')" 1 16 16 15 \
558
-      "Internet router:" 2 1 "$(grep 'ROUTER_IP_ADDRESS' temp.cfg | awk -F '=' '{print $2}')" 2 16 16 15 \
569
+      "This system:" 1 1 "$LOCAL_NETWORK_STATIC_IP_ADDRESS" 1 16 16 15 \
570
+      "Internet router:" 2 1 "$ROUTER_IP_ADDRESS" 2 16 16 15 \
559 571
       2> $data
560 572
   sel=$?
561 573
   case $sel in
@@ -742,7 +754,7 @@ function interactive_configuration {
742 754
           data=$(tempfile 2>/dev/null)
743 755
           trap "rm -f $data" 0 1 2 5 15
744 756
           dialog --backtitle "Freedombone Configuration" \
745
-              --inputbox "Domain name" 10 30 "$(grep 'DEFAULT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
757
+              --inputbox "Which domain name should your email/XMPP/IRC/VoIP be associated with?" 10 45 "$(grep 'DEFAULT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
746 758
           sel=$?
747 759
           case $sel in
748 760
               0) DEFAULT_DOMAIN_NAME=$(cat $data);;
@@ -755,10 +767,15 @@ function interactive_configuration {
755 767
 
756 768
   while [ ! $MY_EMAIL_ADDRESS ]
757 769
   do
770
+      EMAIL_ADDRESS=$(grep 'MY_EMAIL_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
771
+      if [ ! $EMAIL_ADDRESS ]; then
772
+          EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
773
+      fi
774
+
758 775
       data=$(tempfile 2>/dev/null)
759 776
       trap "rm -f $data" 0 1 2 5 15
760 777
       dialog --backtitle "Freedombone Configuration" \
761
-          --inputbox "Your email address" 10 30 "$(grep 'MY_EMAIL_ADDRESS' temp.cfg | awk -F '=' '{print $2}')" 2> $data
778
+          --inputbox "Your email address" 10 30 "$EMAIL_ADDRESS" 2> $data
762 779
       sel=$?
763 780
       case $sel in
764 781
           0) MY_EMAIL_ADDRESS=$(cat $data);;
@@ -786,6 +803,90 @@ function show_result {
786 803
   echo ''
787 804
 }
788 805
 
806
+function read_configuration {
807
+  if [ ! $CONFIGURATION_FILE ]; then
808
+      CONFIGURATION_FILE='freedombone.cfg'
809
+  fi
810
+
811
+  if [ -f $CONFIGURATION_FILE ]; then
812
+      if grep -q "MY_USERNAME" $CONFIGURATION_FILE; then
813
+          MY_USERNAME=$(grep "MY_USERNAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
814
+      fi
815
+      if grep -q "DOMAIN_NAME" $CONFIGURATION_FILE; then
816
+          # for backwards compatability
817
+          DEFAULT_DOMAIN_NAME=$(grep "DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
818
+      fi
819
+      if grep -q "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE; then
820
+          DEFAULT_DOMAIN_NAME=$(grep "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
821
+      fi
822
+      if grep -q "NAMESERVER1" $CONFIGURATION_FILE; then
823
+          NAMESERVER1=$(grep "NAMESERVER1" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
824
+      fi
825
+      if grep -q "NAMESERVER2" $CONFIGURATION_FILE; then
826
+          NAMESERVER2=$(grep "NAMESERVER2" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
827
+      fi
828
+      if grep -q "DEBIAN_REPO" $CONFIGURATION_FILE; then
829
+          DEBIAN_REPO=$(grep "DEBIAN_REPO" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
830
+          CHECK_MESSAGE="Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list."
831
+      fi
832
+      if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
833
+          DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
834
+      fi
835
+      if grep -q "DDNS_USERNAME" $CONFIGURATION_FILE; then
836
+          DDNS_USERNAME=$(grep "DDNS_USERNAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
837
+      fi
838
+      if grep -q "DDNS_PASSWORD" $CONFIGURATION_FILE; then
839
+          DDNS_PASSWORD=$(grep "DDNS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
840
+      fi
841
+      if grep -q "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
842
+          LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
843
+      fi
844
+      if grep -q "ENABLE_CJDNS" $CONFIGURATION_FILE; then
845
+          ENABLE_CJDNS=$(grep "ENABLE_CJDNS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
846
+      fi
847
+      if grep -q "ROUTER_IP_ADDRESS" $CONFIGURATION_FILE; then
848
+          ROUTER_IP_ADDRESS=$(grep "ROUTER_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
849
+      fi
850
+      if grep -q "WIKI_TITLE" $CONFIGURATION_FILE; then
851
+          WIKI_TITLE=$(grep "WIKI_TITLE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
852
+      fi
853
+      if grep -q "MY_NAME" $CONFIGURATION_FILE; then
854
+          MY_NAME=$(grep "MY_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
855
+      fi
856
+      if grep -q "MY_EMAIL_ADDRESS" $CONFIGURATION_FILE; then
857
+          MY_EMAIL_ADDRESS=$(grep "MY_EMAIL_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
858
+      fi
859
+      if grep -q "INSTALLING_ON_BBB" $CONFIGURATION_FILE; then
860
+          INSTALLING_ON_BBB=$(grep "INSTALLING_ON_BBB" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
861
+      fi
862
+      if grep -q "PUBLIC_MAILING_LIST" $CONFIGURATION_FILE; then
863
+          PUBLIC_MAILING_LIST=$(grep "PUBLIC_MAILING_LIST" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
864
+      fi
865
+      if grep -q "MICROBLOG_DOMAIN_NAME" $CONFIGURATION_FILE; then
866
+          MICROBLOG_DOMAIN_NAME=$(grep "MICROBLOG_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
867
+      fi
868
+      if grep -q "REDMATRIX_DOMAIN_NAME" $CONFIGURATION_FILE; then
869
+          REDMATRIX_DOMAIN_NAME=$(grep "REDMATRIX_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
870
+      fi
871
+      if grep -q "OWNCLOUD_DOMAIN_NAME" $CONFIGURATION_FILE; then
872
+          OWNCLOUD_DOMAIN_NAME=$(grep "OWNCLOUD_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
873
+      fi
874
+      if grep -q "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE; then
875
+          WIKI_DOMAIN_NAME=$(grep "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
876
+      fi
877
+      if grep -q "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE; then
878
+          FULLBLOG_DOMAIN_NAME=$(grep "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
879
+      fi
880
+      if grep -q "MY_BLOG_TITLE" $CONFIGURATION_FILE; then
881
+          MY_BLOG_TITLE=$(grep "MY_BLOG_TITLE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
882
+      fi
883
+      if grep -q "MY_BLOG_SUBTITLE" $CONFIGURATION_FILE; then
884
+          MY_BLOG_SUBTITLE=$(grep "MY_BLOG_SUBTITLE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
885
+      fi
886
+  fi
887
+}
888
+
889
+read_configuration
789 890
 interactive_configuration
790 891
 show_result
791 892
 exit 0