From 385eb90c8cd31bfb770a950dd9252a30ccd6955d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 30 Sep 2023 01:31:40 +0100 Subject: 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 --- include/option.sh | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'include') 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 +# SPDX-FileCopyrightText: 2022 Ferass El Hafidi # SPDX-FileCopyrightText: 2023 Leah Rowe 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" +} -- cgit v1.2.1