feature/config-file #3
1 changed files with 54 additions and 22 deletions
|
@ -256,10 +256,10 @@ function parse_command_line_args() {
|
|||
'')
|
||||
autopilot=1
|
||||
;;
|
||||
*[!0-9]*)
|
||||
echo "Invalid argument for parameter 'auto': '${2}'. Invoke with --help for help." >&2
|
||||
exit 1
|
||||
;;
|
||||
# *[!0-9]*)
|
||||
# echo "Invalid argument for parameter 'auto': '${2}'. Invoke with --help for help." >&2
|
||||
# exit 1
|
||||
# ;;
|
||||
*)
|
||||
autopilot="$2"
|
||||
;;
|
||||
|
@ -268,10 +268,10 @@ function parse_command_line_args() {
|
|||
;;
|
||||
'-c' | '--country')
|
||||
IFS=',' read -ra bancountries <<<"${2}"
|
||||
if [[ -z ${bancountries[@]// /} ]]; then
|
||||
echo "Invalid argument for parameter 'country': '${2}'. Invoke with --help for help." >&2
|
||||
exit 1
|
||||
fi
|
||||
# if [[ -z ${bancountries[@]// /} ]]; then
|
||||
# echo "Invalid argument for parameter 'country': '${2}'. Invoke with --help for help." >&2
|
||||
# exit 1
|
||||
# fi
|
||||
shift
|
||||
;;
|
||||
'-d' | '--database')
|
||||
|
@ -284,10 +284,6 @@ function parse_command_line_args() {
|
|||
;;
|
||||
'-f' | '--config-file')
|
||||
configfile="${2}"
|
||||
if [[ ! -f "${configfile}" || ! -r "${configfile}" ]]; then
|
||||
echo "Can not read configuration file '${2}'. Invoke with --help for help." >&2
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
'-j' | '--jail')
|
||||
|
@ -296,21 +292,20 @@ function parse_command_line_args() {
|
|||
;;
|
||||
'-n' | '--netmask')
|
||||
case "${2}" in
|
||||
'1' | '8')
|
||||
'1')
|
||||
netmask=8
|
||||
;;
|
||||
'2' | '16')
|
||||
'2')
|
||||
netmask=16
|
||||
;;
|
||||
'3' | '24')
|
||||
'3')
|
||||
netmask=24
|
||||
;;
|
||||
'4' | '32')
|
||||
'4')
|
||||
netmask=32
|
||||
;;
|
||||
*)
|
||||
echo "Invalid argument for parameter 'netmask': '${2}'. Invoke with --help for help." >&2
|
||||
exit 1
|
||||
netmask="${2}"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
|
@ -337,21 +332,57 @@ function parse_command_line_args() {
|
|||
|
||||
# If the config file option is set, parse the config file.
|
||||
if [[ ! -z ${configfile+x} ]]; then
|
||||
if [[ ! -f "${configfile}" || ! -r "${configfile}" ]]; then
|
||||
echo "Can not read configuration file '${2}'. Invoke with --help for help." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
parse_config_file
|
||||
fi
|
||||
|
||||
# Here, we set the default values for all options that have not been set yet.
|
||||
set_default_values
|
||||
}
|
||||
|
||||
function validate_parameter_values() {
|
||||
# Autopilot
|
||||
case "${autopilot}" in
|
||||
*[!0-9]*)
|
||||
echo "Invalid value argument for parameter 'auto' / 'AUTOPILOT': '${autopilot}'." >&2
|
||||
echo "Invoke with --help for help." >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Countries
|
||||
if [[ -z ${bancountries[@]// /} ]]; then
|
||||
echo "Invalid argument for parameter 'country' / 'COUNTRIES': '${bancountries[*]}'." >&2
|
||||
echo "Invoke with --help for help." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Netmask
|
||||
case "${netmask}" in
|
||||
'8' | '16' | '24' | '32')
|
||||
# Everything OK.
|
||||
;;
|
||||
*)
|
||||
echo "Invalid argument for parameter 'netmask': '${2}'." >&2
|
||||
echo "Invoke with --help for help." >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# GeoIP-Database
|
||||
if [[ -z "${database}" ]]; then
|
||||
echo "No GeoIP database specified. Invoke with --help for more information." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -r "${database}" ]]; then
|
||||
if [[ ! -f "${database}" || ! -r "${database}" ]]; then
|
||||
echo "Database '${database}' is not accessible." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Here, we set the default values for all options that have not been set yet.
|
||||
set_default_values
|
||||
}
|
||||
|
||||
################################################################################
|
||||
|
@ -512,6 +543,7 @@ database=
|
|||
port=
|
||||
|
||||
parse_command_line_args "$@"
|
||||
validate_parameter_values
|
||||
|
||||
check_dependencies
|
||||
dependencies_ok=$?
|
||||
|
|
Loading…
Reference in a new issue