[v2,1/1] dt-bindings: Fix multi pattern support in DT_SCHEMA_FILES

Message ID 20230209193735.795288-1-cristian.ciocaltea@collabora.com
State New
Headers
Series [v2,1/1] dt-bindings: Fix multi pattern support in DT_SCHEMA_FILES |

Commit Message

Cristian Ciocaltea Feb. 9, 2023, 7:37 p.m. UTC
  DT_SCHEMA_FILES used to allow specifying a space separated list of file
paths, but the introduction of partial matches support broke this
feature:

$ make dtbs_check DT_SCHEMA_FILES="path/to/schema1.yaml path/to/schema2.yaml"
[...]
  LINT    Documentation/devicetree/bindings
usage: yamllint [-h] [-] [-c CONFIG_FILE | -d CONFIG_DATA] [--list-files] [...]
                [-v]
                [FILE_OR_DIR ...]
yamllint: error: one of the arguments FILE_OR_DIR - is required
[...]

Restore the lost functionality by preparing a grep filter that is able
to handle multiple search patterns.

Additionally, as suggested by Rob, use ':' instead of ' ' as the
patterns separator char. Hence, the command above becomes:

$ make dtbs_check DT_SCHEMA_FILES="path/to/schema1.yaml:path/to/schema2.yaml"

Fixes: 309d955985ee ("dt-bindings: kbuild: Support partial matches with DT_SCHEMA_FILES")
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
---
Changes in v2:
 - Use ':' instead of ' ' as the patterns separator char, per Rob's review
 - Drop empty line between Fixes and Signed-off-by tags

 Documentation/devicetree/bindings/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Rob Herring Feb. 15, 2023, 6:19 p.m. UTC | #1
On Thu, 09 Feb 2023 21:37:35 +0200, Cristian Ciocaltea wrote:
> DT_SCHEMA_FILES used to allow specifying a space separated list of file
> paths, but the introduction of partial matches support broke this
> feature:
> 
> $ make dtbs_check DT_SCHEMA_FILES="path/to/schema1.yaml path/to/schema2.yaml"
> [...]
>   LINT    Documentation/devicetree/bindings
> usage: yamllint [-h] [-] [-c CONFIG_FILE | -d CONFIG_DATA] [--list-files] [...]
>                 [-v]
>                 [FILE_OR_DIR ...]
> yamllint: error: one of the arguments FILE_OR_DIR - is required
> [...]
> 
> Restore the lost functionality by preparing a grep filter that is able
> to handle multiple search patterns.
> 
> Additionally, as suggested by Rob, use ':' instead of ' ' as the
> patterns separator char. Hence, the command above becomes:
> 
> $ make dtbs_check DT_SCHEMA_FILES="path/to/schema1.yaml:path/to/schema2.yaml"
> 
> Fixes: 309d955985ee ("dt-bindings: kbuild: Support partial matches with DT_SCHEMA_FILES")
> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
> ---
> Changes in v2:
>  - Use ':' instead of ' ' as the patterns separator char, per Rob's review
>  - Drop empty line between Fixes and Signed-off-by tags
> 
>  Documentation/devicetree/bindings/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Applied, thanks!
  

Patch

diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile
index bf2d8a8ced77..8b395893bd85 100644
--- a/Documentation/devicetree/bindings/Makefile
+++ b/Documentation/devicetree/bindings/Makefile
@@ -28,7 +28,7 @@  $(obj)/%.example.dts: $(src)/%.yaml check_dtschema_version FORCE
 find_all_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
 		-name 'processed-schema*' \)
 
-find_cmd = $(find_all_cmd) | grep -F "$(DT_SCHEMA_FILES)"
+find_cmd = $(find_all_cmd) | grep -F -e "$(subst :," -e ",$(DT_SCHEMA_FILES))"
 CHK_DT_DOCS := $(shell $(find_cmd))
 
 quiet_cmd_yamllint = LINT    $(src)