mirror of
https://github.com/m8tin/cis.git
synced 2026-11-02 14:17:24 +01:00
Function added base.setFromFile()
This commit is contained in:
1 file changed
+29
-6
+29
-6
@@ -396,11 +396,13 @@ function base.printWithColor() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function base.set() {
|
function base.set() {
|
||||||
local _VARNAME="${1:?"base.set(): Missing first parameter VARNAME"}"
|
local _CLEAN_VARNAME _MODE _REGEX _VALUE _VARNAME
|
||||||
local _CLEAN_VARNAME="${_VARNAME//[^a-zA-Z0-9_]/}"
|
_VARNAME="${1:?"base.set(): Missing first parameter VARNAME"}"
|
||||||
local _VALUE="${2}"
|
_CLEAN_VARNAME="${_VARNAME//[^a-zA-Z0-9_]/}"
|
||||||
local _REGEX="${3:?"base.set(): Missing third parameter REGEX"}"
|
_VALUE="${2}"
|
||||||
local _MODE="${4}"
|
_REGEX="${3:?"base.set(): Missing third parameter REGEX"}"
|
||||||
|
_MODE="${4}"
|
||||||
|
readonly _CLEAN_VARNAME _MODE _REGEX _VALUE _VARNAME
|
||||||
|
|
||||||
[ "${_VARNAME}" != "${_CLEAN_VARNAME}" ] \
|
[ "${_VARNAME}" != "${_CLEAN_VARNAME}" ] \
|
||||||
&& echo "FAILURE - base.set(): Invalid name of variable: ${_VARNAME}" >&2 \
|
&& echo "FAILURE - base.set(): Invalid name of variable: ${_VARNAME}" >&2 \
|
||||||
@@ -417,7 +419,28 @@ function base.set() {
|
|||||||
&& readonly "${_CLEAN_VARNAME}" \
|
&& readonly "${_CLEAN_VARNAME}" \
|
||||||
&& return 0
|
&& return 0
|
||||||
|
|
||||||
printf -- '%s\n' "FAILURE: - base.set(): Validation '${_REGEX}' failed for variable '${_VARNAME}', value was: '${_VALUE}'" >&2
|
printf -- '%s\n' "FAILURE: - base.set(): Unable to set variable '${_VARNAME}' to value '${_VALUE}', validation failed: '${_REGEX}'" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function base.setFromFile() {
|
||||||
|
local _CLEAN_VARNAME _FILENAME _VARNAME
|
||||||
|
_VARNAME="${1:?"base.setFromFile(): Missing first parameter VARNAME"}"
|
||||||
|
_CLEAN_VARNAME="${_VARNAME//[^a-zA-Z0-9_]/}"
|
||||||
|
_FILENAME="${2:?"base.serFromFile(): Missing second parameter FILENAME"}"
|
||||||
|
readonly _CLEAN_VARNAME _FILENAME _VARNAME
|
||||||
|
|
||||||
|
[ "${_VARNAME}" != "${_CLEAN_VARNAME}" ] \
|
||||||
|
&& echo "FAILURE - base.setFromFile(): Invalid name of variable: ${_VARNAME}" >&2 \
|
||||||
|
&& exit 1
|
||||||
|
|
||||||
|
local _LINE=$(grep -m 1 -oE "^[[:blank:]]*${_CLEAN_VARNAME}=[^[:blank:]]+.*" "${_FILENAME}" 2> /dev/null) \
|
||||||
|
&& [ -n "${_LINE}" ] \
|
||||||
|
&& printf -v "${_CLEAN_VARNAME}" -- "%s" "${_LINE#*=}" \
|
||||||
|
&& readonly "${_CLEAN_VARNAME}" \
|
||||||
|
&& return 0
|
||||||
|
|
||||||
|
printf -- '%s\n' "FAILURE: - base.setFromFile(): Unable to set variable '${_VARNAME}' from file '${_FILENAME}', value not found." >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user