You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
2.8 KiB
136 lines
2.8 KiB
#!/bin/bash |
|
|
|
function func_parser_key() { |
|
strs=$1 |
|
IFS=":" |
|
array=(${strs}) |
|
tmp=${array[0]} |
|
echo ${tmp} |
|
} |
|
|
|
function func_parser_value() { |
|
strs=$1 |
|
IFS=":" |
|
array=(${strs}) |
|
tmp=${array[1]} |
|
echo ${tmp} |
|
} |
|
|
|
function func_parser_value_lite() { |
|
strs=$1 |
|
IFS=$2 |
|
array=(${strs}) |
|
tmp=${array[1]} |
|
echo ${tmp} |
|
} |
|
|
|
function func_set_params() { |
|
key=$1 |
|
value=$2 |
|
if [ ${key}x = "null"x ];then |
|
echo " " |
|
elif [[ ${value} = "null" ]] || [[ ${value} = " " ]] || [ ${#value} -le 0 ];then |
|
echo " " |
|
else |
|
echo "${key}=${value}" |
|
fi |
|
} |
|
|
|
function func_parser_params() { |
|
strs=$1 |
|
IFS=":" |
|
array=(${strs}) |
|
key=${array[0]} |
|
tmp=${array[1]} |
|
IFS="|" |
|
res="" |
|
for _params in ${tmp[*]}; do |
|
IFS="=" |
|
array=(${_params}) |
|
mode=${array[0]} |
|
value=${array[1]} |
|
if [[ ${mode} = ${MODE} ]]; then |
|
IFS="|" |
|
#echo $(func_set_params "${mode}" "${value}") |
|
echo $value |
|
break |
|
fi |
|
IFS="|" |
|
done |
|
echo ${res} |
|
} |
|
|
|
function status_check() { |
|
local last_status=$1 # the exit code |
|
local run_command=$2 |
|
local run_log=$3 |
|
local model_name=$4 |
|
|
|
if [ $last_status -eq 0 ]; then |
|
echo -e "\033[33m Run successfully with command - ${model_name} - ${run_command}! \033[0m" | tee -a ${run_log} |
|
else |
|
echo -e "\033[33m Run failed with command - ${model_name} - ${run_command}! \033[0m" | tee -a ${run_log} |
|
fi |
|
} |
|
|
|
function download_and_unzip_dataset() { |
|
local ds_dir="$1" |
|
local ds_name="$2" |
|
local url="$3" |
|
local clear="${4-True}" |
|
|
|
local ds_path="${ds_dir}/${ds_name}" |
|
local zip_name="${url##*/}" |
|
|
|
if [ ${clear} = 'True' ]; then |
|
rm -rf "${ds_path}" |
|
fi |
|
|
|
wget -O "${ds_dir}/${zip_name}" "${url}" --no-check-certificate |
|
|
|
# The extracted file/directory must have the same name as the zip file. |
|
cd "${ds_dir}" && unzip "${zip_name}" |
|
if [ "${zip_name%.*}" != "${ds_name}" ]; then |
|
mv "${zip_name%.*}" "${ds_name}" |
|
fi |
|
cd - |
|
} |
|
|
|
function parse_extra_args() { |
|
local lines=("$@") |
|
local last_idx=$((${#lines[@]}-1)) |
|
local IFS=';' |
|
extra_args=(${lines[last_idx]}) |
|
} |
|
|
|
function add_suffix() { |
|
local ori_path="$1" |
|
local suffix=$2 |
|
local ext="${ori_path##*.}" |
|
echo "${ori_path%.*}${suffix}.${ext}" |
|
} |
|
|
|
function parse_first_value() { |
|
local key_values=$1 |
|
local IFS=":" |
|
local arr=(${key_values}) |
|
echo ${arr[1]} |
|
} |
|
|
|
function parse_second_value() { |
|
local key_values=$1 |
|
local IFS=":" |
|
local arr=(${key_values}) |
|
echo ${arr[2]} |
|
} |
|
|
|
function run_command() { |
|
local cmd="$1" |
|
local log_path="$2" |
|
if [ -n "${log_path}" ]; then |
|
eval ${cmd} | tee "${log_path}" |
|
test ${PIPESTATUS[0]} -eq 0 |
|
else |
|
eval ${cmd} |
|
fi |
|
}
|
|
|