Browse Source

Include trove selection in interactive install

Bob Mottram 9 years ago
parent
commit
54fcc1f3f6
1 changed files with 71 additions and 0 deletions
  1. 71
    0
      src/freedombone-config

+ 71
- 0
src/freedombone-config View File

111
 DEFAULT_LANGUAGE='en_GB.UTF-8'
111
 DEFAULT_LANGUAGE='en_GB.UTF-8'
112
 ONION_ONLY="no"
112
 ONION_ONLY="no"
113
 
113
 
114
+# Trove settings
115
+FRIENDS_TROVE_SERVER=
116
+FRIENDS_TROVE_SSH_PORT=2222
117
+FRIENDS_TROVE_PASSWORD=
118
+MY_TROVE_PASSWORD=
119
+
114
 function show_help {
120
 function show_help {
115
     echo ''
121
     echo ''
116
     echo $"${PROJECT_NAME}-config -f [config filename] -m [min password length]"
122
     echo $"${PROJECT_NAME}-config -f [config filename] -m [min password length]"
281
         echo "DH_KEYLENGTH=$DH_KEYLENGTH" >> $CONFIGURATION_FILE
287
         echo "DH_KEYLENGTH=$DH_KEYLENGTH" >> $CONFIGURATION_FILE
282
     fi
288
     fi
283
     echo "ONION_ONLY=$ONION_ONLY" >> $CONFIGURATION_FILE
289
     echo "ONION_ONLY=$ONION_ONLY" >> $CONFIGURATION_FILE
290
+
291
+    if [ $FRIENDS_TROVE_SERVER ]; then
292
+        echo "FRIENDS_TROVE_SERVER=$FRIENDS_TROVE_SERVER" >> $CONFIGURATION_FILE
293
+    fi
294
+    if [ $FRIENDS_TROVE_SSH_PORT ]; then
295
+        echo "FRIENDS_TROVE_SSH_PORT=$FRIENDS_TROVE_SSH_PORT" >> $CONFIGURATION_FILE
296
+    fi
297
+    if [ $FRIENDS_TROVE_PASSWORD ]; then
298
+        echo "FRIENDS_TROVE_PASSWORD=$FRIENDS_TROVE_PASSWORD" >> $CONFIGURATION_FILE
299
+    fi
284
 }
300
 }
285
 
301
 
286
 # test a domain name to see if it's valid
302
 # test a domain name to see if it's valid
512
     done
528
     done
513
 }
529
 }
514
 
530
 
531
+function set_main_repo {
532
+    data=$(tempfile 2>/dev/null)
533
+    trap "rm -f $data" 0 1 2 5 15
534
+    dialog --backtitle $"Freedombone Control Panel" \
535
+           --title $"Main Repository (Trove)" \
536
+           --form $"If you do not wish to use the default repositories they can be obtained from another ${PROJECT_NAME} server acting as a trove.\n\nA trove is a mirrored collection of git repositories for systems which are not yet packaged for Debian.\n\nTo use the defaults just select Ok." 18 65 4 \
537
+              $"URL:" 1 1 "$FRIENDS_TROVE_SERVER" 1 18 40 18 \
538
+              $"SSH Port:" 2 1 "$FRIENDS_TROVE_SSH_PORT" 2 18 10 10000 \
539
+              $"Password:" 3 1 "$FRIENDS_TROVE_PASSWORD" 3 18 40 10000 \
540
+              2> $data
541
+    sel=$?
542
+    case $sel in
543
+        1) return;;
544
+        255) return;;
545
+    esac
546
+    new_trove_url=$(cat $data | sed -n 1p)
547
+    new_trove_ssh_port=$(cat $data | sed -n 2p)
548
+    new_trove_password=$(cat $data | sed -n 3p)
549
+
550
+    if [ ${#new_trove_url} -lt 2 ]; then
551
+        return
552
+    fi
553
+    if [ ${#new_trove_ssh_port} -lt 1 ]; then
554
+        return
555
+    fi
556
+    if [ ${#new_trove_password} -lt 10 ]; then
557
+        dialog --title $"Main Repository" \
558
+               --msgbox $'Trove password was too short. Should be at least 10 characters.' 6 40
559
+        return
560
+    fi
561
+
562
+    if [[ $new_trove_url == *"."* ]]; then
563
+        FRIENDS_TROVE_SERVER=$new_trove_url
564
+        FRIENDS_TROVE_SSH_PORT=$new_trove_ssh_port
565
+        FRIENDS_TROVE_PASSWORD=$new_trove_password
566
+
567
+        dialog --title $"Main Repository" \
568
+               --msgbox $"Main repository set to $FRIENDS_TROVE_SERVER" 6 60
569
+    fi
570
+}
571
+
515
 function interactive_select_language {
572
 function interactive_select_language {
516
     data=$(tempfile 2>/dev/null)
573
     data=$(tempfile 2>/dev/null)
517
     trap "rm -f $data" 0 1 2 5 15
574
     trap "rm -f $data" 0 1 2 5 15
595
     esac
652
     esac
596
     save_configuration_file
653
     save_configuration_file
597
 
654
 
655
+    if [[ $SYSTEM_TYPE != "$VARIANT_MESH" && $SYSTEM_TYPE != "$VARIANT_MESH_USER" ]]; then
656
+        set_main_repo
657
+        save_configuration_file
658
+    fi
659
+
598
     if [[ $SYSTEM_TYPE == "$VARIANT_MESH" || $SYSTEM_TYPE == "$VARIANT_MESH_USER" ]]; then
660
     if [[ $SYSTEM_TYPE == "$VARIANT_MESH" || $SYSTEM_TYPE == "$VARIANT_MESH_USER" ]]; then
599
         ENABLE_BATMAN="yes"
661
         ENABLE_BATMAN="yes"
600
         ENABLE_CJDNS="no"
662
         ENABLE_CJDNS="no"
1692
     fi
1754
     fi
1693
 
1755
 
1694
     if [ -f $CONFIGURATION_FILE ]; then
1756
     if [ -f $CONFIGURATION_FILE ]; then
1757
+        if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
1758
+            FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1759
+        fi
1760
+        if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
1761
+            FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1762
+        fi
1763
+        if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
1764
+            FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1765
+        fi
1695
         if grep -q "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE; then
1766
         if grep -q "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE; then
1696
             ENABLE_SOCIAL_KEY_MANAGEMENT=$(grep "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1767
             ENABLE_SOCIAL_KEY_MANAGEMENT=$(grep "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1697
         fi
1768
         fi