Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ce1fd90 authored by Cole Faust's avatar Cole Faust
Browse files

Make dump-many-vars work for large variables

When printing a large variable like PRODUCT_PACKAGES,
dump-many-vars could fail because the command line is
too long. This is seen as a E2BIG error on the execve
in kati.

To solve this, split the printing up by word in the
variable.

Change-Id: I49db726d7a4769a2f02028194d79934ed5655adf
Fixes: 172287533
Test: lunch bonito-userdebug; get_build_var PRODUCT_PACKAGES
parent c0f70128
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -24,9 +24,14 @@ ANDROID_CLANG_PREBUILTS := prebuilts/clang/host/$(HOST_PREBUILT_TAG)
# Input variables:
#   DUMP_MANY_VARS: the list of variable names.
#   DUMP_VAR_PREFIX: an optional prefix of the variable name added to the output.
# The value is printed in parts because large variables like PRODUCT_PACKAGES
# can exceed the maximum linux command line size
.PHONY: dump-many-vars
dump-many-vars :
	@$(foreach v, $(DUMP_MANY_VARS),\
	  printf "%s='%s'\n" '$(DUMP_VAR_PREFIX)$(v)' '$($(v))';)
	  printf "%s='%s" '$(DUMP_VAR_PREFIX)$(v)' '$(firstword $($(v)))'; \
	  $(foreach part, $(wordlist 2, $(words $($(v))), $($(v))),\
	    printf " %s" '$(part)'$(newline))\
	  printf "'\n";)

endif # CALLED_FROM_SETUP