support/utils: make-comma-list does just that, not quoting

Currently, we have two functions that build a comma-separated list
of items; one is double-quoting the items, while the other is
single-quoting them. Their naming is not very consistent.

Besides, in a followup change, we will need to build a comma-separated
list of items that are already double-quoted.

Introduce a macro that does just build a comma-separated list, and
use that in the two other macros; rename the existing macro so the
naming is consistent.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Yann E. MORIN 2021-11-13 14:28:20 +01:00 committed by Thomas Petazzoni
parent f796ac3fed
commit 5b00c382fc
2 changed files with 14 additions and 10 deletions

View File

@ -120,17 +120,17 @@ define _json-info-pkg
"install_images": $(call yesno-to-bool,$($(1)_INSTALL_IMAGES))$(comma) \
)
"dependencies": [
$(call make-comma-list,$(sort $($(1)_FINAL_ALL_DEPENDENCIES)))
$(call make-dq-comma-list,$(sort $($(1)_FINAL_ALL_DEPENDENCIES)))
],
"reverse_dependencies": [
$(call make-comma-list,$(sort $($(1)_RDEPENDENCIES)))
$(call make-dq-comma-list,$(sort $($(1)_RDEPENDENCIES)))
]
$(if $($(1)_CPE_ID_VALID), \
$(comma) "cpe-id": "$($(1)_CPE_ID)" \
)
$(if $($(1)_IGNORE_CVES),
$(comma) "ignore_cves": [
$(call make-comma-list,$(sort $($(1)_IGNORE_CVES)))
$(call make-dq-comma-list,$(sort $($(1)_IGNORE_CVES)))
]
)
endef
@ -144,7 +144,7 @@ define _json-info-pkg-details
{
"source": "$(notdir $(dl))",
"uris": [
$(call make-comma-list,
$(call make-dq-comma-list,
$(subst \|,|,
$(call DOWNLOAD_URIS,$(dl),$(1))
)
@ -161,7 +161,7 @@ define _json-info-fs
null \
),
"dependencies": [
$(call make-comma-list,$(sort $($(1)_DEPENDENCIES)))
$(call make-dq-comma-list,$(sort $($(1)_DEPENDENCIES)))
]
endef

View File

@ -84,13 +84,17 @@ finddirclauses = $(call notfirstword,$(patsubst %,-o -path '$(1)/%',$(2)))
# notfirstword(wordlist): returns all but the first word in wordlist
notfirstword = $(wordlist 2,$(words $(1)),$(1))
# build a comma-separated list of quoted items, from a space-separated
# list of unquoted items: a b c d --> "a", "b", "c", "d"
make-comma-list = $(subst $(space),$(comma)$(space),$(patsubst %,"%",$(strip $(1))))
# build a comma-separated list of items, from a space-separated
# list of items: a b c d --> a, b, c, d
make-comma-list = $(subst $(space),$(comma)$(space),$(strip $(1)))
# build a comma-separated list of single quoted items, from a space-separated
# build a comma-separated list of double-quoted items, from a space-separated
# list of unquoted items: a b c d --> "a", "b", "c", "d"
make-dq-comma-list = $(call make-comma-list,$(patsubst %,"%",$(strip $(1))))
# build a comma-separated list of single-quoted items, from a space-separated
# list of unquoted items: a b c d --> 'a', 'b', 'c', 'd'
make-sq-comma-list = $(subst $(space),$(comma)$(space),$(patsubst %,'%',$(strip $(1))))
make-sq-comma-list = $(call make-comma-list,$(patsubst %,'%',$(strip $(1))))
# Needed for the foreach loops to loop over the list of hooks, so that
# each hook call is properly separated by a newline.