-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfigure
executable file
·227 lines (180 loc) · 5.37 KB
/
configure
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
#!/bin/bash
#### Loading / Writing configuration
function load_prev_config() {
# load the defaults from the file if it exists
if [ -f ".config/save" ]; then
source ".config/save";
# else load some defaults
else
echo "No saved settings found, loading defaults for local development setup. "
SET_MATHHUB_PORT="80"
SET_MATHHUB_PROFILE="latest"
SET_MATHHUB_UUID="local"
SET_MATHHUB_SECRET_KEY="not-production-ready"
SET_MATHHUB_AUTOUPDATE="none"
SET_MATHHUB_RIBBON=""
fi;
}
function save_current_config() {
{
echo "echo \"Loaded previous settings from $(date)\"";
echo_save_line "SET_MATHHUB_PROFILE" "$MATHHUB_PROFILE"
echo_save_line "SET_MATHHUB_PORT" "$MATHHUB_PORT"
echo_save_line "SET_MATHHUB_UUID" "$MATHHUB_UUID"
echo_save_line "SET_MATHHUB_SECRET_KEY" "$MATHHUB_SECRET_KEY"
echo_save_line "SET_MATHHUB_AUTOUPDATE" "$MATHHUB_AUTOUPDATE"
echo_save_line "SET_MATHHUB_RIBBON" "$MATHHUB_RIBBON"
} > .config/save
echo "Wrote .config/save"
}
function echo_save_line() {
echo "$1='$2'"
}
#### Reading configuration settings
function read_mathhub_profile() {
cat << EOF
MathHub can run in different so-called profiles. These determine which
branches of the React Frontend and MMT Backend will be used. Please pick
either "devel" or "latest" now use leave this question blank to use
"$SET_MATHHUB_PROFILE".
EOF
printf "MATHHUB_PROFILE="
read MATHHUB_PROFILE
if [ -z "$MATHHUB_PROFILE" ]
then
MATHHUB_PROFILE="$SET_MATHHUB_PROFILE"
fi;
echo "export MATHHUB_PROFILE=$MATHHUB_PROFILE"
}
function read_mathhub_uuid() {
cat << EOF
MathHub requires a per-host-unique UUID to scope particular docker
services appropriatly. Please enter one now or leave this question
blank to use "$SET_MATHHUB_UUID".
EOF
printf "MATHHUB_UUID="
read MATHHUB_UUID
if [ -z "$MATHHUB_UUID" ]
then
MATHHUB_UUID="$SET_MATHHUB_UUID"
fi;
echo "export MATHHUB_UUID=$MATHHUB_UUID"
}
function read_mathhub_port() {
cat << EOF
MathHub requires a public port to listen on. Please enter one now or
leave this question blank to use "$SET_MATHHUB_PORT".
EOF
printf "MATHHUB_PORT="
read MATHHUB_PORT
if [ -z "$MATHHUB_PORT" ]
then
MATHHUB_PORT="$SET_MATHHUB_PORT"
fi;
echo "export MATHHUB_PORT=$MATHHUB_PORT"
}
function read_mathhub_autoupdate() {
cat << EOF
MathHub can automatically update all components when new versions become
available. Please pick one of 'none' (disable auto-update), 'news'
(update the News Container only), or 'all' (auto-update everything).
Defaults to "$SET_MATHHUB_AUTOUPDATE".
EOF
printf "MATHHUB_AUTOUPDATE="
read MATHHUB_AUTOUPDATE
if [ -z "$MATHHUB_AUTOUPDATE" ]
then
MATHHUB_AUTOUPDATE="$SET_MATHHUB_AUTOUPDATE"
fi;
echo "export MATHHUB_AUTOUPDATE=$MATHHUB_AUTOUPDATE"
}
function read_mathhub_secret_key() {
cat << EOF
MathHub uses a secret key to safely encrypt session information. The
production key should be kept strictly secret. Please either enter a
secret key now, or leave it blank to use the saved value of
"$SET_MATHHUB_SECRET_KEY".
This key should not contain single or double quotes, otherwise any
character is allowed.
EOF
printf "MATHHUB_SECRET_KEY="
read MATHHUB_SECRET_KEY
if [ -z "$MATHHUB_SECRET_KEY" ]
then
MATHHUB_SECRET_KEY="$SET_MATHHUB_SECRET_KEY"
fi;
echo "export MATHHUB_SECRET_KEY=$MATHHUB_SECRET_KEY"
}
function read_mathhub_ribbon() {
cat << EOF
MathHub can show a certain sets of ribbon to indicate to the user
which version is being used. This should be one of: 'beta', ''.
The default is "$SET_MATHHUB_RIBBON".
EOF
printf "MATHHUB_RIBBON="
read MATHHUB_RIBBON
if [ -z "$MATHHUB_RIBBON" ]
then
MATHHUB_RIBBON="$SET_MATHHUB_RIBBON"
fi;
echo "export MATHHUB_RIBBON=$MATHHUB_RIBBON"
}
### Writing configuration
function write_mathhub_profile() {
cp "profiles/$MATHHUB_PROFILE" .env
echo "" >> .env
echo cp "profiles/$MATHHUB_PROFILE" .env
}
function write_env() {
echo "" >> .env
echo "# Instance UUID" >> .env
echo "MATHHUB_UUID=$MATHHUB_UUID" >> .env
echo "# MathHub Port" >> .env
echo "MATHHUB_PORT=$MATHHUB_PORT" >> .env
echo "" >> .env
echo "Wrote .env"
}
function write_autoupdate_config() {
cat "updates/$MATHHUB_AUTOUPDATE.update" >> .env
echo cat "updates/$MATHHUB_AUTOUPDATE.update" '>> .env'
}
function write_admin_config() {
echo "DJANGO_SECRET_KEY=$MATHHUB_SECRET_KEY" > .config/admin
echo "Wrote .config/admin"
}
function write_mmt_config() {
touch .config/mmt
echo "Wrote .config/mmt"
}
function write_config_config() {
echo "SHOW_RIBBON=$MATHHUB_RIBBON" > .config/letitgo
echo "Wrote .config/letitgo"
}
function main() {
echo "MATHHUB DOCKER CONFIGURATION"
load_prev_config
echo ""
read_mathhub_uuid
echo ""
read_mathhub_profile
echo ""
read_mathhub_port
echo ""
read_mathhub_secret_key
echo ""
read_mathhub_ribbon
echo ""
read_mathhub_autoupdate
echo ""
echo "WRITING CONFIGURATION"
mkdir -p .config
save_current_config
write_mathhub_profile
write_autoupdate_config
write_env
write_admin_config
write_mmt_config
write_config_config
echo "Done. "
}
main