@@ -6,8 +6,37 @@ BRANCH=master
6
6
DEV=false
7
7
DOCKER_REGISTRY=" https://registry-1.docker.io"
8
8
UTILS_TAG=" 20.10.16"
9
+ NETWORK=" "
9
10
HOME_DIR=" $HOME /.xud-docker"
11
+ SIMNET_DIR=" $HOME_DIR /simnet"
12
+ TESTNET_DIR=" $HOME_DIR /testnet"
13
+ MAINNET_DIR=" $HOME_DIR /mainnet"
14
+ XUD_DOCKER_CONF=" $HOME_DIR /xud-docker.conf"
15
+
16
+ if [[ -e $XUD_DOCKER_CONF ]]; then
17
+ function get_value() {
18
+ sed -nE " s/^\s*$1 = \" (.+)\" $/\1/p" " $XUD_DOCKER_CONF "
19
+ }
20
+ # shellcheck disable=2034
21
+ home_dir=$HOME_DIR
22
+
23
+ if VALUE=$( get_value " simnet-dir" ) ; then
24
+ SIMNET_DIR=$( eval echo " $VALUE " )
25
+ fi
26
+ if VALUE=$( get_value " testnet-dir" ) ; then
27
+ SIMNET_DIR=$( eval echo " $VALUE " )
28
+ fi
29
+ if VALUE=$( get_value " mainnet-dir" ) ; then
30
+ SIMNET_DIR=$( eval echo " $VALUE " )
31
+ fi
32
+ unset home_dir
33
+ unset VALUE
34
+ unset get_value
35
+ fi
10
36
37
+ # ##############################################################################
38
+ # Functions
39
+ # ##############################################################################
11
40
12
41
function print_help() {
13
42
cat << EOF
@@ -116,7 +145,7 @@ function parse_opts() {
116
145
local OPTION VALUE
117
146
while [[ $# -gt 0 ]]; do
118
147
case $1 in
119
- " -h" | " --help" )
148
+ " -h" | " --help" )
120
149
print_help
121
150
exit 1
122
151
;;
@@ -127,7 +156,7 @@ function parse_opts() {
127
156
OPTION=$1
128
157
shift
129
158
if [[ $# -eq 0 || $1 =~ ^- ]]; then
130
- echo >&2 " ❌ Missing option value: $OPTION "
159
+ echo >&2 " Command-line option \" $OPTION \" needs value "
131
160
exit 1
132
161
fi
133
162
VALUE=$1
@@ -138,6 +167,62 @@ function parse_opts() {
138
167
DEV=true
139
168
shift
140
169
;;
170
+ " -n" | " --network" )
171
+ if [[ $1 =~ = ]]; then
172
+ VALUE=$( echo " $1 " | cut -d' =' -f2)
173
+ else
174
+ OPTION=$1
175
+ shift
176
+ if [[ $# -eq 0 || $1 =~ ^- ]]; then
177
+ echo >&2 " Command-line option \" $OPTION \" needs value"
178
+ exit 1
179
+ fi
180
+ VALUE=$1
181
+ fi
182
+ NETWORK=$VALUE
183
+ ;;
184
+ " --simnet-dir" )
185
+ if [[ $1 =~ = ]]; then
186
+ VALUE=$( echo " $1 " | cut -d' =' -f2)
187
+ else
188
+ OPTION=$1
189
+ shift
190
+ if [[ $# -eq 0 || $1 =~ ^- ]]; then
191
+ echo >&2 " Command-line option \" $OPTION \" needs value"
192
+ exit 1
193
+ fi
194
+ VALUE=$1
195
+ fi
196
+ SIMNET_DIR=$VALUE
197
+ ;;
198
+ " --testnet-dir" )
199
+ if [[ $1 =~ = ]]; then
200
+ VALUE=$( echo " $1 " | cut -d' =' -f2)
201
+ else
202
+ OPTION=$1
203
+ shift
204
+ if [[ $# -eq 0 || $1 =~ ^- ]]; then
205
+ echo >&2 " Command-line option \" $OPTION \" needs value"
206
+ exit 1
207
+ fi
208
+ VALUE=$1
209
+ fi
210
+ TESTNET_DIR=$VALUE
211
+ ;;
212
+ " --mainnet-dir" )
213
+ if [[ $1 =~ = ]]; then
214
+ VALUE=$( echo " $1 " | cut -d' =' -f2)
215
+ else
216
+ OPTION=$1
217
+ shift
218
+ if [[ $# -eq 0 || $1 =~ ^- ]]; then
219
+ echo >&2 " Command-line option \" $OPTION \" needs value"
220
+ exit 1
221
+ fi
222
+ VALUE=$1
223
+ fi
224
+ MAINNET_DIR=$VALUE
225
+ ;;
141
226
* )
142
227
shift
143
228
esac
@@ -155,17 +240,14 @@ function choose_network() {
155
240
case $REPLY in
156
241
1 | simnet)
157
242
NETWORK=simnet
158
- NETWORK_DIR=" $HOME_DIR /simnet"
159
243
break
160
244
;;
161
245
2 | testnet)
162
246
NETWORK=testnet
163
- NETWORK_DIR=" $HOME_DIR /testnet"
164
247
break
165
248
;;
166
249
3 | mainnet)
167
250
NETWORK=mainnet
168
- NETWORK_DIR=" $HOME_DIR /mainnet"
169
251
break
170
252
;;
171
253
* )
@@ -370,26 +452,35 @@ function get_utils_name() {
370
452
echo " ${NETWORK} _utils_${N} "
371
453
}
372
454
373
- # ###############################################################################
455
+
456
+ # ##############################################################################
374
457
# MAIN
375
- # ###############################################################################
458
+ # ##############################################################################
376
459
377
460
LOG_TIMESTAMP= " $( date +%F-%H-%M-%S) "
378
461
379
462
parse_opts " $@ "
380
463
381
- choose_network
464
+ if [[ -z $NETWORK ]]; then
465
+ choose_network
466
+ fi
467
+
468
+ case $NETWORK in
469
+ simnet)
470
+ NETWORK_DIR=$SIMNET_DIR
471
+ ;;
472
+ testnet)
473
+ NETWORK_DIR=$TESTNET_DIR
474
+ ;;
475
+ mainnet)
476
+ NETWORK_DIR=$MAINNET_DIR
477
+ ;;
478
+ esac
382
479
383
480
ensure_utils_image
384
481
385
482
echo " 🚀 Launching $NETWORK environment"
386
483
387
-
388
-
389
- # TODO load network dirs from command-line options and xud-docker.conf
390
-
391
-
392
-
393
484
docker run --rm -it \
394
485
--name " $( get_utils_name) " \
395
486
-v /var/run/docker.sock:/var/run/docker.sock \
0 commit comments