From 5b00c382fc1b7771193fb8c348f0702e896cb13f Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sat, 13 Nov 2021 14:28:20 +0100 Subject: [PATCH] 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 Signed-off-by: Thomas Petazzoni --- package/pkg-utils.mk | 10 +++++----- support/misc/utils.mk | 14 +++++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk index 973eabe437..94e806963b 100644 --- a/package/pkg-utils.mk +++ b/package/pkg-utils.mk @@ -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 diff --git a/support/misc/utils.mk b/support/misc/utils.mk index dc60cad979..fdc22a2eef 100644 --- a/support/misc/utils.mk +++ b/support/misc/utils.mk @@ -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.