|
@@ -47,11 +47,9 @@ MINIMUM_PASSWORD_LENGTH=8
|
47
|
47
|
VOIP_PORT=64738
|
48
|
48
|
VOIP_ONION_PORT=8095
|
49
|
49
|
|
50
|
|
-PROJECT_REPO="https://github.com/bashrc/${PROJECT_NAME}"
|
51
|
|
-
|
52
|
50
|
USB_DRIVE=sdb
|
53
|
51
|
# get default USB from config file
|
54
|
|
-CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
|
|
52
|
+CONFIGURATION_FILE=/root/${PROJECT_NAME}.cfg
|
55
|
53
|
if [ -f $CONFIGURATION_FILE ]; then
|
56
|
54
|
if grep -q "USB_DRIVE=" $CONFIGURATION_FILE; then
|
57
|
55
|
USB_DRIVE=$(cat $CONFIGURATION_FILE | grep "USB_DRIVE=" | awk -F '=' '{print $2}')
|
|
@@ -59,12 +57,14 @@ if [ -f $CONFIGURATION_FILE ]; then
|
59
|
57
|
USB_DRIVE=$(echo ${USB_DRIVE} | awk -F '/' '{print $3}' | sed 's|1||g' | sed 's|2||g')
|
60
|
58
|
fi
|
61
|
59
|
fi
|
62
|
|
- # read the location of the main project repo
|
63
|
|
- if grep -q "PROJECT_REPO" $CONFIGURATION_FILE; then
|
64
|
|
- PROJECT_REPO=$(grep "PROJECT_REPO" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
65
|
|
- fi
|
66
|
60
|
fi
|
67
|
61
|
|
|
62
|
+# Trove settings
|
|
63
|
+FRIENDS_TROVE_SERVER=
|
|
64
|
+FRIENDS_TROVE_SSH_PORT=2222
|
|
65
|
+FRIENDS_TROVE_PASSWORD=
|
|
66
|
+MY_TROVE_PASSWORD=
|
|
67
|
+
|
68
|
68
|
function any_key {
|
69
|
69
|
echo ' '
|
70
|
70
|
read -n1 -r -p $"Press any key to continue..." key
|
|
@@ -82,21 +82,104 @@ function check_for_updates {
|
82
|
82
|
any_key
|
83
|
83
|
}
|
84
|
84
|
|
|
85
|
+function read_repo_servers {
|
|
86
|
+ if [ -f $CONFIGURATION_FILE ]; then
|
|
87
|
+ if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
|
|
88
|
+ FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
89
|
+ fi
|
|
90
|
+ if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
|
|
91
|
+ FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
92
|
+ fi
|
|
93
|
+ if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
|
|
94
|
+ MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
95
|
+ fi
|
|
96
|
+ if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
|
|
97
|
+ FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
98
|
+ fi
|
|
99
|
+ fi
|
|
100
|
+
|
|
101
|
+ if [ ! $FRIENDS_TROVE_SERVER ]; then
|
|
102
|
+ return
|
|
103
|
+ fi
|
|
104
|
+ if [ ${#FRIENDS_TROVE_SERVER} -lt 2 ]; then
|
|
105
|
+ return
|
|
106
|
+ fi
|
|
107
|
+
|
|
108
|
+ MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
|
|
109
|
+ if [ ! -f $MAIN_COMMAND ]; then
|
|
110
|
+ MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
|
|
111
|
+ fi
|
|
112
|
+
|
|
113
|
+ REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
|
|
114
|
+
|
|
115
|
+ for line in "${REPOS[@]}"
|
|
116
|
+ do
|
|
117
|
+ repo_name=$(echo "$line" | awk -F '=' '{print $1}')
|
|
118
|
+ trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
|
|
119
|
+ friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
|
|
120
|
+ ${repo_name}="${friends_repo_url}"
|
|
121
|
+ done
|
|
122
|
+}
|
|
123
|
+
|
85
|
124
|
function set_main_repo {
|
86
|
125
|
data=$(tempfile 2>/dev/null)
|
|
126
|
+ trap "rm -f $data" 0 1 2 5 15
|
87
|
127
|
dialog --backtitle $"Freedombone Control Panel" \
|
88
|
|
- --title $"Main Repository" \
|
89
|
|
- --inputbox $"Set the main repository:" 8 70 "$PROJECT_REPO" 2>data
|
|
128
|
+ --title $"Main Repository (Trove)" \
|
|
129
|
+ --form "\n" 8 60 3 \
|
|
130
|
+ $"URL:" 1 1 "$FRIENDS_TROVE_SERVER" 1 14 40 15 \
|
|
131
|
+ $"SSH Port:" 2 1 "$FRIENDS_TROVE_SSH_PORT" 2 14 40 10000 \
|
|
132
|
+ $"Password:" 3 1 "$FRIENDS_TROVE_PASSWORD" 3 14 40 10000 \
|
|
133
|
+ 2> $data
|
90
|
134
|
sel=$?
|
91
|
135
|
case $sel in
|
92
|
136
|
1) return;;
|
93
|
137
|
255) return;;
|
94
|
138
|
esac
|
95
|
|
- repo=$(cat $data)
|
96
|
|
- if [[ $repo == *"."* ]]; then
|
97
|
|
- PROJECT_REPO=$(cat $data)
|
|
139
|
+ new_trove_url=$(cat $data | sed -n 1p)
|
|
140
|
+ new_trove_ssh_port=$(cat $data | sed -n 2p)
|
|
141
|
+ new_trove_password=$(cat $data | sed -n 3p)
|
|
142
|
+
|
|
143
|
+ if [ ${#new_trove_url} -lt 2 ]; then
|
|
144
|
+ return
|
|
145
|
+ fi
|
|
146
|
+ if [ ${#new_trove_ssh_port} -lt 1 ]; then
|
|
147
|
+ return
|
|
148
|
+ fi
|
|
149
|
+ if [ ${#new_trove_password} -lt 10 ]; then
|
|
150
|
+ dialog --title $"Main Repository" \
|
|
151
|
+ --msgbox $'Trove password was too short. Should be at least 10 characters.' 6 40
|
|
152
|
+ return
|
|
153
|
+ fi
|
|
154
|
+
|
|
155
|
+ if [[ $new_trove_url == *"."* ]]; then
|
|
156
|
+ FRIENDS_TROVE_SERVER=$new_trove_url
|
|
157
|
+ FRIENDS_TROVE_SSH_PORT=$new_trove_ssh_port
|
|
158
|
+ FRIENDS_TROVE_PASSWORD=$new_trove_password
|
|
159
|
+
|
|
160
|
+ if ! grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
|
|
161
|
+ echo "FRIENDS_TROVE_SERVER=$FRIENDS_TROVE_SERVER" >> $CONFIGURATION_FILE
|
|
162
|
+ else
|
|
163
|
+ sed -i "s|FRIENDS_TROVE_SERVER=.*|FRIENDS_TROVE_SERVER=$FRIENDS_TROVE_SERVER|g" $CONFIGURATION_FILE
|
|
164
|
+ fi
|
|
165
|
+
|
|
166
|
+ if ! grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
|
|
167
|
+ echo "FRIENDS_TROVE_SSH_PORT=$FRIENDS_TROVE_SSH_PORT" >> $CONFIGURATION_FILE
|
|
168
|
+ else
|
|
169
|
+ sed -i "s|FRIENDS_TROVE_SSH_PORT=.*|FRIENDS_TROVE_SSH_PORT=$FRIENDS_TROVE_SSH_PORT|g" $CONFIGURATION_FILE
|
|
170
|
+ fi
|
|
171
|
+
|
|
172
|
+ if ! grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
|
|
173
|
+ echo "FRIENDS_TROVE_PASSWORD=$FRIENDS_TROVE_PASSWORD" >> $CONFIGURATION_FILE
|
|
174
|
+ else
|
|
175
|
+ sed -i "s|FRIENDS_TROVE_PASSWORD=.*|FRIENDS_TROVE_PASSWORD=$FRIENDS_TROVE_PASSWORD|g" $CONFIGURATION_FILE
|
|
176
|
+ fi
|
|
177
|
+
|
|
178
|
+ # re-read the repos
|
|
179
|
+ read_repo_servers
|
|
180
|
+
|
98
|
181
|
dialog --title $"Main Repository" \
|
99
|
|
- --msgbox $"Main repository set to $PROJECT_REPO" 6 40
|
|
182
|
+ --msgbox $"Main repository set to $FRIENDS_TROVE_SERVER" 6 60
|
100
|
183
|
fi
|
101
|
184
|
}
|
102
|
185
|
|
|
@@ -105,9 +188,9 @@ function add_user {
|
105
|
188
|
trap "rm -f $data" 0 1 2 5 15
|
106
|
189
|
dialog --backtitle $"Freedombone Control Panel" \
|
107
|
190
|
--title $"Add new user" \
|
108
|
|
- --form "\n" 8 40 3 \
|
109
|
|
- $"Username:" 1 1 "" 1 11 16 15 \
|
110
|
|
- $"ssh public key (optional):" 2 1 "" 3 1 40 10000 \
|
|
191
|
+ --form "\n" 8 60 3 \
|
|
192
|
+ $"Username:" 1 1 "" 1 28 16 15 \
|
|
193
|
+ $"ssh public key (optional):" 2 1 "" 2 28 40 10000 \
|
111
|
194
|
2> $data
|
112
|
195
|
sel=$?
|
113
|
196
|
case $sel in
|
|
@@ -1455,6 +1538,7 @@ if [ ! -f $COMPLETION_FILE ]; then
|
1455
|
1538
|
fi
|
1456
|
1539
|
|
1457
|
1540
|
ADMIN_USER=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
|
|
1541
|
+read_repo_servers
|
1458
|
1542
|
menu_top_level
|
1459
|
1543
|
clear
|
1460
|
1544
|
cat /etc/motd
|