Skip to content

Commit dd7e965

Browse files
Update bito-cra.sh
1 parent 2e63078 commit dd7e965

File tree

1 file changed

+68
-4
lines changed

1 file changed

+68
-4
lines changed

cra-scripts/bito-cra.sh

Lines changed: 68 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,18 @@ validate_mode() {
8181
fi
8282
}
8383

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+
8496
# Function to display URL using IP address and port
8597
# Run docker ps -l command and store the output
8698
display_docker_url() {
@@ -154,6 +166,32 @@ check_action_directory() {
154166
fi
155167
}
156168

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+
157195
stop_cra() {
158196
if test -f "$BITOCRALOCKFILE"; then
159197
echo "Stopping the CRA..."
@@ -321,6 +359,10 @@ optional_params_cli=(
321359
"dependency_check"
322360
"dependency_check.snyk_auth_token"
323361
"cra_version"
362+
"env"
363+
"cli_path"
364+
"output_path"
365+
"git.domain"
324366
)
325367

326368
# Parameters that are required/optional in mode server
@@ -338,6 +380,9 @@ optional_params_server=(
338380
"dependency_check.snyk_auth_token"
339381
"server_port"
340382
"cra_version"
383+
"env"
384+
"cli_path"
385+
"git.domain"
341386
)
342387

343388
bee_params=(
@@ -359,15 +404,16 @@ cra_version="latest"
359404
docker_pull='docker pull bitoai/cra:${cra_version}'
360405

361406
# Construct the docker run command
362-
docker_cmd='docker run --rm -it'
407+
docker_init_cmd='docker run --rm -it'
363408
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'
365410
fi
366411

367412
required_params=("${required_params_cli[@]}")
368413
optional_params=("${optional_params_cli[@]}")
369414
mode="cli"
370415
param_mode="mode"
416+
docker_cmd=""
371417
#handle if CRA is starting in server mode using start command.
372418
if [ -n "$force_mode" ]; then
373419
props[$param_mode]="$force_mode"
@@ -398,7 +444,7 @@ done
398444
for param in "${optional_params[@]}"; do
399445
if [ "$param" == "dependency_check.snyk_auth_token" ] && [ "${props["dependency_check"]}" == "True" ]; then
400446
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
402448
ask_for_param "$param" "False"
403449
fi
404450
done
@@ -438,14 +484,32 @@ for param in "${required_params[@]}" "${bee_params[@]}" "${optional_params[@]}";
438484
docker_cmd+=" --$param=${props[$param]}"
439485
elif [ "$param" == "mode" ]; then
440486
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
442505
else
443506
docker_cmd+=" --$param=${props[$param]}"
444507
fi
445508

446509
fi
447510
done
448511

512+
docker_cmd=$docker_init_cmd$docker_cmd
449513
param_bito_access_key="bito_cli.bito.access_key"
450514
param_git_access_token="git.access_token"
451515
if [ "$mode" == "server" ]; then

0 commit comments

Comments
 (0)