diff options
Diffstat (limited to 'include')
-rwxr-xr-x | include/option.sh | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/include/option.sh b/include/option.sh index 1f4f290f..98f91c51 100755 --- a/include/option.sh +++ b/include/option.sh @@ -1,4 +1,6 @@ -# SPDX-License-Identifier: MIT +# SPDX-License-Identifier: GPL-3.0-only +# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com> +# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com> # SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org> listitems() @@ -16,3 +18,26 @@ listitems() done return ${rval} } + +scan_config() +{ + awkstr=" /\{.*${1}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }" + confdir="${2}" + _fail="${3}" + revfile="$(mktemp -t sources.XXXXXXXXXX)" || \ + "${_fail}" "scan_config: Cannot initialise tmpfile" + cat "${confdir}/"* > "${revfile}" || \ + "${_fail}" "scan_config: Cannot concatenate files" + while read -r line ; do + set ${line} 1>/dev/null 2>/dev/null || : + if [ "${1%:}" = "depend" ]; then + depend="${depend} ${2}" + else + eval "${1%:}=\"${2}\"" + fi + done << EOF + $(eval "awk '${awkstr}' \"${revfile}\"") +EOF + rm -f "${revfile}" || \ + "${_fail}" "scan_config: Cannot remove tmpfile" +} |