summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-09-30 01:31:40 +0100
committerLeah Rowe <leah@libreboot.org>2023-09-30 12:31:30 +0100
commit385eb90c8cd31bfb770a950dd9252a30ccd6955d (patch)
treeded66bc53f6f13ec8d87266f5c38d46b2e1d8b17 /include
parent9f5a5450afda39973d9da4fa3bed97c365a5acd2 (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')
-rwxr-xr-xinclude/option.sh27
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"
+}