fix: check for settings file existence or exit

master
Kebler Network System Administrator 2021-09-11 08:49:40 -07:00
parent 2302bfb5a8
commit 21c9940d4d
2 changed files with 43 additions and 5 deletions

View File

@ -17,6 +17,7 @@ root_command() {
local settings=${args[--settings]}
if [[ $settings ]]; then
if [[ -f $settings ]]; then
echo loading settings file $settings
module_load yaml
@ -24,7 +25,9 @@ root_command() {
echo $s_source
echo $s_target
echo $s_host
else
echo settings file $settings does not exist && return 1
fi
fi
if [[ $s_server_host ]]; then
@ -308,6 +311,30 @@ dbackup_usage() {
fi
}
# :command.normalize_input
normalize_input() {
local arg flags
while [[ $# -gt 0 ]]; do
arg="$1"
if [[ $arg =~ ^(--[a-zA-Z0-9_\-]+)=(.+)$ ]]; then
input+=("${BASH_REMATCH[1]}")
input+=("${BASH_REMATCH[2]}")
elif [[ $arg =~ ^(-[a-zA-Z0-9])=(.+)$ ]]; then
input+=("${BASH_REMATCH[1]}")
input+=("${BASH_REMATCH[2]}")
elif [[ $arg =~ ^-([a-zA-Z0-9][a-zA-Z0-9]+)$ ]]; then
flags="${BASH_REMATCH[1]}"
for (( i=0 ; i < ${#flags} ; i++ )); do
input+=("-${flags:i:1}")
done
else
input+=("$arg")
fi
shift
done
}
# :command.inspect_args
inspect_args() {
readarray -t sorted_keys < <(printf '%s\n' "${!args[@]}" | sort)
@ -342,7 +369,7 @@ parse_requirements() {
--help | -h )
long_usage=yes
dbackup_usage
exit 1
exit
;;
esac
@ -528,6 +555,7 @@ parse_requirements() {
esac
done
# :command.catch_all_filter
# :command.default_assignments
# :command.whitelist_filter
}
@ -538,6 +566,11 @@ initialize() {
long_usage=''
set -e
if [[ "${BASH_VERSINFO:-0}" -lt 4 ]]; then
printf "bash version 4 or higher is required\n"
exit 1
fi
# :src/initialize.sh
# Code here runs inside the initialize() function
# Use it for anything that you need to run before any other function, like
@ -552,7 +585,9 @@ initialize() {
run() {
declare -A args
declare -a other_args
parse_requirements "$@"
declare -a input
normalize_input "$@"
parse_requirements "${input[@]}"
if [[ $action == "root" ]]; then
root_command

View File

@ -10,6 +10,7 @@ module_load path
local settings=${args[--settings]}
if [[ $settings ]]; then
if [[ -f $settings ]]; then
echo loading settings file $settings
module_load yaml
@ -17,7 +18,9 @@ if [[ -f $settings ]]; then
echo $s_source
echo $s_target
echo $s_host
else
echo settings file $settings does not exist && return 1
fi
fi
if [[ $s_server_host ]]; then