瀏覽代碼

Include trove selection in interactive install

Bob Mottram 9 年之前
父節點
當前提交
54fcc1f3f6
共有 1 個文件被更改,包括 71 次插入0 次删除
  1. 71
    0
      src/freedombone-config

+ 71
- 0
src/freedombone-config 查看文件

@@ -111,6 +111,12 @@ MINIMAL_INSTALL="yes"
111 111
 DEFAULT_LANGUAGE='en_GB.UTF-8'
112 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 120
 function show_help {
115 121
     echo ''
116 122
     echo $"${PROJECT_NAME}-config -f [config filename] -m [min password length]"
@@ -281,6 +287,16 @@ function save_configuration_file {
281 287
         echo "DH_KEYLENGTH=$DH_KEYLENGTH" >> $CONFIGURATION_FILE
282 288
     fi
283 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 302
 # test a domain name to see if it's valid
@@ -512,6 +528,47 @@ function interactive_gpg {
512 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 572
 function interactive_select_language {
516 573
     data=$(tempfile 2>/dev/null)
517 574
     trap "rm -f $data" 0 1 2 5 15
@@ -595,6 +652,11 @@ function interactive_configuration {
595 652
     esac
596 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 660
     if [[ $SYSTEM_TYPE == "$VARIANT_MESH" || $SYSTEM_TYPE == "$VARIANT_MESH_USER" ]]; then
599 661
         ENABLE_BATMAN="yes"
600 662
         ENABLE_CJDNS="no"
@@ -1692,6 +1754,15 @@ function read_configuration {
1692 1754
     fi
1693 1755
 
1694 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 1766
         if grep -q "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE; then
1696 1767
             ENABLE_SOCIAL_KEY_MANAGEMENT=$(grep "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1697 1768
         fi