@@ -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
8698display_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+
157195stop_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
343388bee_params=(
@@ -359,15 +404,16 @@ cra_version="latest"
359404docker_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'
363408if [ ! -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'
365410fi
366411
367412required_params=(" ${required_params_cli[@]} " )
368413optional_params=(" ${optional_params_cli[@]} " )
369414mode=" cli"
370415param_mode=" mode"
416+ docker_cmd=" "
371417# handle if CRA is starting in server mode using start command.
372418if [ -n " $force_mode " ]; then
373419 props[$param_mode ]=" $force_mode "
398444for 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
404450done
@@ -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
447510done
448511
512+ docker_cmd=$docker_init_cmd$docker_cmd
449513param_bito_access_key=" bito_cli.bito.access_key"
450514param_git_access_token=" git.access_token"
451515if [ " $mode " == " server" ]; then
0 commit comments