@@ -81,6 +81,18 @@ validate_mode() {
81
81
fi
82
82
}
83
83
84
+ # Function to validate a env value i.e. prod or staging
85
+ validate_env () {
86
+ local env=" $1 "
87
+ if [ " $env " == " prod" ] || [ " $env " == " staging" ]; then
88
+ # echo "Valid mode value"
89
+ echo
90
+ else
91
+ echo " Invalid mode value. Please enter either prod or staging."
92
+ exit 1
93
+ fi
94
+ }
95
+
84
96
# Function to display URL using IP address and port
85
97
# Run docker ps -l command and store the output
86
98
display_docker_url () {
@@ -154,6 +166,32 @@ check_action_directory() {
154
166
fi
155
167
}
156
168
169
+ check_cli_directory () {
170
+ local cli_dir=" $1 "
171
+ if [ -z " $cli_dir " ]; then
172
+ echo " cli directory not provided!"
173
+ return 1
174
+ fi
175
+ if [ ! -d " $cli_dir " ]; then
176
+ echo " cli directory not found!"
177
+ return 1
178
+ else
179
+ echo $cli_dir
180
+ return 0
181
+ fi
182
+ }
183
+
184
+ check_output_directory () {
185
+ local output_path=" $1 "
186
+ if [ ! -d " $output_path " ]; then
187
+ echo " output path directory not found!"
188
+ return 1
189
+ else
190
+ echo $output_path
191
+ return 0
192
+ fi
193
+ }
194
+
157
195
stop_cra () {
158
196
if test -f " $BITOCRALOCKFILE " ; then
159
197
echo " Stopping the CRA..."
@@ -321,6 +359,10 @@ optional_params_cli=(
321
359
" dependency_check"
322
360
" dependency_check.snyk_auth_token"
323
361
" cra_version"
362
+ " env"
363
+ " cli_path"
364
+ " output_path"
365
+ " git.domain"
324
366
)
325
367
326
368
# Parameters that are required/optional in mode server
@@ -338,6 +380,9 @@ optional_params_server=(
338
380
" dependency_check.snyk_auth_token"
339
381
" server_port"
340
382
" cra_version"
383
+ " env"
384
+ " cli_path"
385
+ " git.domain"
341
386
)
342
387
343
388
bee_params=(
@@ -359,15 +404,16 @@ cra_version="latest"
359
404
docker_pull=' docker pull bitoai/cra:${cra_version}'
360
405
361
406
# Construct the docker run command
362
- docker_cmd =' docker run --rm -it'
407
+ docker_init_cmd =' docker run --rm -it'
363
408
if [ ! -z " $action_directory " ]; then
364
- docker_cmd =' docker run --rm -it -v $action_directory:/action_dir'
409
+ docker_init_cmd =' docker run --rm -it -v $action_directory:/action_dir'
365
410
fi
366
411
367
412
required_params=(" ${required_params_cli[@]} " )
368
413
optional_params=(" ${optional_params_cli[@]} " )
369
414
mode=" cli"
370
415
param_mode=" mode"
416
+ docker_cmd=" "
371
417
# handle if CRA is starting in server mode using start command.
372
418
if [ -n " $force_mode " ]; then
373
419
props[$param_mode ]=" $force_mode "
398
444
for param in " ${optional_params[@]} " ; do
399
445
if [ " $param " == " dependency_check.snyk_auth_token" ] && [ " ${props["dependency_check"]} " == " True" ]; then
400
446
ask_for_param " $param " " False"
401
- elif [ " $param " != " dependency_check.snyk_auth_token" ]; then
447
+ elif [ " $param " != " dependency_check.snyk_auth_token" ] && [ " $param " != " env " ] && [ " $param " != " cli_path " ] && [ " $param " != " output_path " ] && [ " $param " != " git.domain " ] ; then
402
448
ask_for_param " $param " " False"
403
449
fi
404
450
done
@@ -438,14 +484,32 @@ for param in "${required_params[@]}" "${bee_params[@]}" "${optional_params[@]}";
438
484
docker_cmd+=" --$param =${props[$param]} "
439
485
elif [ " $param " == " mode" ]; then
440
486
validate_mode " ${props[$param]} "
441
- docker_cmd+=" --$param =${props[$param]} "
487
+ docker_cmd+=" --$param =${props[$param]} "
488
+ elif [ " $param " == " env" ]; then
489
+ validate_env " ${props[$param]} "
490
+ docker_cmd+=" --$param =${props[$param]} "
491
+ elif [ " $param " == " cli_path" ]; then
492
+ check_cli_directory " ${props[$param]} "
493
+ cli_dir=${props[$param]}
494
+ docker_init_cmd+=' -v $cli_dir:/cli_dir'
495
+ elif [ " $param " == " output_path" ]; then
496
+ if [ -n " ${props[$param]} " ]; then
497
+ check_output_directory " ${props[$param]} "
498
+ return_val=$? # Capture the return value of the check output directory
499
+ if [ $return_val -eq 0 ]; then
500
+ output_path=${props[$param]}
501
+ docker_init_cmd+=' -v "$output_path":/output_path'
502
+ docker_cmd+=" --$param =/output_path"
503
+ fi
504
+ fi
442
505
else
443
506
docker_cmd+=" --$param =${props[$param]} "
444
507
fi
445
508
446
509
fi
447
510
done
448
511
512
+ docker_cmd=$docker_init_cmd$docker_cmd
449
513
param_bito_access_key=" bito_cli.bito.access_key"
450
514
param_git_access_token=" git.access_token"
451
515
if [ " $mode " == " server" ]; then
0 commit comments