Browse Source

Configure dat bootstrap servers

Bob Mottram 7 years ago
parent
commit
d1f1328a12
1 changed files with 54 additions and 2 deletions
  1. 54
    2
      src/freedombone-app-datserver

+ 54
- 2
src/freedombone-app-datserver View File

84
     echo 'module.exports = function (opts) {';
84
     echo 'module.exports = function (opts) {';
85
     echo '  return extend(DEFAULT_OPTS, opts) // opts takes priority';
85
     echo '  return extend(DEFAULT_OPTS, opts) // opts takes priority';
86
     echo '}'; } > $DATSERVER_BOOTSTRAP_FILE
86
     echo '}'; } > $DATSERVER_BOOTSTRAP_FILE
87
+
88
+  chown datserver:datserver $DATSERVER_BOOTSTRAP_FILE
89
+}
90
+
91
+function datserver_configure_bootstraps {
92
+    read_config_param DATSERVER_DISCOVERY1
93
+    read_config_param DATSERVER_DISCOVERY2
94
+
95
+    read_config_param DATSERVER_BOOTSTRAP1
96
+    read_config_param DATSERVER_BOOTSTRAP2
97
+    read_config_param DATSERVER_BOOTSTRAP3
98
+    read_config_param DATSERVER_BOOTSTRAP4
99
+
100
+    data=$(mktemp 2>/dev/null)
101
+    dialog --backtitle $"Freedombone Control Panel" \
102
+           --title $"dat bootstrap servers" \
103
+           --form $"Specify discovery and bootstrap servers:\\n" 14 68 6 \
104
+           $"Discovery 1:" 1 1 "$DATSERVER_DISCOVERY1" 1 35 26 25 \
105
+           $"Discovery 2:" 2 1 "$DATSERVER_DISCOVERY2" 2 35 26 25 \
106
+           $"Bootstrap 1:" 3 1 "$DATSERVER_BOOTSTRAP1" 3 35 26 25 \
107
+           $"Bootstrap 2:" 4 1 $"$DATSERVER_BOOTSTRAP2" 4 35 4 25 \
108
+           $"Bootstrap 3:" 5 1 $"$DATSERVER_BOOTSTRAP3" 5 35 4 25 \
109
+           $"Bootstrap 4:" 6 1 $"$DATSERVER_BOOTSTRAP4" 6 35 4 25 \
110
+           2> "$data"
111
+    sel=$?
112
+    case $sel in
113
+        1)  rm -f "$data"
114
+            return;;
115
+        255) rm -f "$data"
116
+             return;;
117
+    esac
118
+    DATSERVER_DISCOVERY1=$(sed -n 1p < "$data")
119
+    DATSERVER_DISCOVERY2=$(sed -n 2p < "$data")
120
+    DATSERVER_BOOTSTRAP1=$(sed -n 3p < "$data")
121
+    DATSERVER_BOOTSTRAP2=$(sed -n 4p < "$data")
122
+    DATSERVER_BOOTSTRAP3=$(sed -n 4p < "$data")
123
+    DATSERVER_BOOTSTRAP4=$(sed -n 4p < "$data")
124
+    rm "$data"
125
+
126
+    write_config_param DATSERVER_DISCOVERY1
127
+    write_config_param DATSERVER_DISCOVERY2
128
+
129
+    write_config_param DATSERVER_BOOTSTRAP1
130
+    write_config_param DATSERVER_BOOTSTRAP2
131
+    write_config_param DATSERVER_BOOTSTRAP3
132
+    write_config_param DATSERVER_BOOTSTRAP4
133
+
134
+    datserver_generate_bootstraps
135
+    systemctl restart datserver
87
 }
136
 }
88
 
137
 
89
 function logging_on_datserver {
138
 function logging_on_datserver {
142
 
191
 
143
 function configure_interactive_datserver {
192
 function configure_interactive_datserver {
144
     W=(1 $"Add a dat"
193
     W=(1 $"Add a dat"
145
-       2 $"Browse or edit feeds")
194
+       2 $"Browse or edit feeds"
195
+       3 $"Bootstrap servers")
146
 
196
 
147
     while true
197
     while true
148
     do
198
     do
149
         # shellcheck disable=SC2068
199
         # shellcheck disable=SC2068
150
-        selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"dat server" --menu $"Choose an operation, or ESC for main menu:" 10 70 3 "${W[@]}" 3>&2 2>&1 1>&3)
200
+        selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"dat server" --menu $"Choose an operation, or ESC for main menu:" 11 70 4 "${W[@]}" 3>&2 2>&1 1>&3)
151
 
201
 
152
         if [ ! "$selection" ]; then
202
         if [ ! "$selection" ]; then
153
            break
203
            break
160
                chown -R datserver:datserver $DATSERVER_DIRECTORY/feeds
210
                chown -R datserver:datserver $DATSERVER_DIRECTORY/feeds
161
                systemctl restart datserver
211
                systemctl restart datserver
162
                ;;
212
                ;;
213
+            3) datserver_configure_bootstraps
214
+               ;;
163
         esac
215
         esac
164
     done
216
     done
165
 }
217
 }