diff mbox series

dt-bindings: Add a help message when dtschema tools are missing

Message ID 20211026171804.2867369-1-robh@kernel.org
State Accepted
Headers show
Series dt-bindings: Add a help message when dtschema tools are missing | expand

Checks

Context Check Description
robh/checkpatch success

Commit Message

Rob Herring Oct. 26, 2021, 5:18 p.m. UTC
The dtschema version check works, but is not that clear when dtschema is
neither installed nor in the PATH. Add a separate check and message if
dt-doc-validate is not found.

Cc: Luca Ceresoli <luca@lucaceresoli.net>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/Makefile | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Luca Ceresoli Oct. 27, 2021, 7:30 a.m. UTC | #1
Hi Rob,

thanks for this patch!

On 26/10/21 19:18, Rob Herring wrote:
> The dtschema version check works, but is not that clear when dtschema is
> neither installed nor in the PATH. Add a separate check and message if

Nit: I think it should say "either not installed or not in the PATH".

> dt-doc-validate is not found.
>
> Cc: Luca Ceresoli <luca@lucaceresoli.net>
> Cc: Masahiro Yamada <masahiroy@kernel.org>
> Signed-off-by: Rob Herring <robh@kernel.org>
> ---
>  Documentation/devicetree/bindings/Makefile | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile
> index 8d6d912c6a6a..001b4f62b741 100644
> --- a/Documentation/devicetree/bindings/Makefile
> +++ b/Documentation/devicetree/bindings/Makefile
> @@ -9,6 +9,10 @@ DT_SCHEMA_MIN_VERSION = 2021.2.1
>  
>  PHONY += check_dtschema_version
>  check_dtschema_version:
> +	@which $(DT_DOC_CHECKER) >/dev/null || \
> +		{ echo "Error: '$(DT_DOC_CHECKER)' not found!" \
> +		"\nEnsure dtschema python package is installed and in your PATH." \
> +		"\nCurrent PATH is:\n$$PATH\n" >&2; false; }

You need 'echo -e' for the '\n'.

Otherwise looks and works well.
Rob Herring Oct. 27, 2021, 1:53 p.m. UTC | #2
On Wed, Oct 27, 2021 at 2:30 AM Luca Ceresoli <luca@lucaceresoli.net> wrote:
>
> Hi Rob,
>
> thanks for this patch!
>
> On 26/10/21 19:18, Rob Herring wrote:
> > The dtschema version check works, but is not that clear when dtschema is
> > neither installed nor in the PATH. Add a separate check and message if
>
> Nit: I think it should say "either not installed or not in the PATH".

Right.

>
> > dt-doc-validate is not found.
> >
> > Cc: Luca Ceresoli <luca@lucaceresoli.net>
> > Cc: Masahiro Yamada <masahiroy@kernel.org>
> > Signed-off-by: Rob Herring <robh@kernel.org>
> > ---
> >  Documentation/devicetree/bindings/Makefile | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile
> > index 8d6d912c6a6a..001b4f62b741 100644
> > --- a/Documentation/devicetree/bindings/Makefile
> > +++ b/Documentation/devicetree/bindings/Makefile
> > @@ -9,6 +9,10 @@ DT_SCHEMA_MIN_VERSION = 2021.2.1
> >
> >  PHONY += check_dtschema_version
> >  check_dtschema_version:
> > +     @which $(DT_DOC_CHECKER) >/dev/null || \
> > +             { echo "Error: '$(DT_DOC_CHECKER)' not found!" \
> > +             "\nEnsure dtschema python package is installed and in your PATH." \
> > +             "\nCurrent PATH is:\n$$PATH\n" >&2; false; }
>
> You need 'echo -e' for the '\n'.

Except dash will just print '-e' and interpret the newlines...

I changed it like this:

@which $(DT_DOC_CHECKER) >/dev/null || \
{ echo "Error: '$(DT_DOC_CHECKER)' not found!" >&2; \
  echo "Ensure dtschema python package is installed and in your PATH." >&2; \
  echo "Current PATH is:" >&2; \
  echo "$$PATH" >&2; false; }

Rob
Luca Ceresoli Oct. 27, 2021, 2:20 p.m. UTC | #3
Hi,

On 27/10/21 15:53, Rob Herring wrote:
> On Wed, Oct 27, 2021 at 2:30 AM Luca Ceresoli <luca@lucaceresoli.net> wrote:
>>
>> Hi Rob,
>>
>> thanks for this patch!
>>
>> On 26/10/21 19:18, Rob Herring wrote:
>>> The dtschema version check works, but is not that clear when dtschema is
>>> neither installed nor in the PATH. Add a separate check and message if
>>
>> Nit: I think it should say "either not installed or not in the PATH".
> 
> Right.
> 
>>
>>> dt-doc-validate is not found.
>>>
>>> Cc: Luca Ceresoli <luca@lucaceresoli.net>
>>> Cc: Masahiro Yamada <masahiroy@kernel.org>
>>> Signed-off-by: Rob Herring <robh@kernel.org>
>>> ---
>>>  Documentation/devicetree/bindings/Makefile | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile
>>> index 8d6d912c6a6a..001b4f62b741 100644
>>> --- a/Documentation/devicetree/bindings/Makefile
>>> +++ b/Documentation/devicetree/bindings/Makefile
>>> @@ -9,6 +9,10 @@ DT_SCHEMA_MIN_VERSION = 2021.2.1
>>>
>>>  PHONY += check_dtschema_version
>>>  check_dtschema_version:
>>> +     @which $(DT_DOC_CHECKER) >/dev/null || \
>>> +             { echo "Error: '$(DT_DOC_CHECKER)' not found!" \
>>> +             "\nEnsure dtschema python package is installed and in your PATH." \
>>> +             "\nCurrent PATH is:\n$$PATH\n" >&2; false; }
>>
>> You need 'echo -e' for the '\n'.
> 
> Except dash will just print '-e' and interpret the newlines...

Oh dear, I always forget about dash...

> I changed it like this:
> 
> @which $(DT_DOC_CHECKER) >/dev/null || \
> { echo "Error: '$(DT_DOC_CHECKER)' not found!" >&2; \
>   echo "Ensure dtschema python package is installed and in your PATH." >&2; \
>   echo "Current PATH is:" >&2; \
>   echo "$$PATH" >&2; false; }

Either that or 'printf', which IIRC is more portable, including with \n.
But in this simple case I find multiple 'echo's more readable than one
printf with '\n's.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile
index 8d6d912c6a6a..001b4f62b741 100644
--- a/Documentation/devicetree/bindings/Makefile
+++ b/Documentation/devicetree/bindings/Makefile
@@ -9,6 +9,10 @@  DT_SCHEMA_MIN_VERSION = 2021.2.1
 
 PHONY += check_dtschema_version
 check_dtschema_version:
+	@which $(DT_DOC_CHECKER) >/dev/null || \
+		{ echo "Error: '$(DT_DOC_CHECKER)' not found!" \
+		"\nEnsure dtschema python package is installed and in your PATH." \
+		"\nCurrent PATH is:\n$$PATH\n" >&2; false; }
 	@{ echo $(DT_SCHEMA_MIN_VERSION); \
 	$(DT_DOC_CHECKER) --version 2>/dev/null || echo 0; } | sort -Vc >/dev/null || \
 	{ echo "ERROR: dtschema minimum version is v$(DT_SCHEMA_MIN_VERSION)" >&2; false; }