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>
This commit is contained in:
Leah Rowe
2023-09-30 01:31:40 +01:00
parent 9f5a5450af
commit 385eb90c8c
3 changed files with 51 additions and 64 deletions
+26 -1
View File
@@ -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"
}