diff options
author | Leah Rowe <leah@libreboot.org> | 2023-09-30 01:31:40 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-09-30 12:31:30 +0100 |
commit | 385eb90c8cd31bfb770a950dd9252a30ccd6955d (patch) | |
tree | ded66bc53f6f13ec8d87266f5c38d46b2e1d8b17 /include/option.sh | |
parent | 9f5a5450afda39973d9da4fa3bed97c365a5acd2 (diff) |
update/*/*: unified scanning of revisions/sources
update/blobs/download and update/project/repo both use
the same logic, for setting variables with awk and a
specially formatted configuration file.
unify this logic under include/option.sh, and use that.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'include/option.sh')
-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" +} |