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