mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v3] scripts/tags.sh: don't parse `ls` for $ALLSOURCE_ARCHS generation
@ 2018-05-18  6:25 Joey Pabalinas
  2018-05-18  7:08 ` Masahiro Yamada
  0 siblings, 1 reply; 7+ messages in thread
From: Joey Pabalinas @ 2018-05-18  6:25 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Andrew Morton, Linux Kernel Mailing List, Arend van Spriel,
	Robert Jarzmik, Joey Pabalinas

[-- Attachment #1: Type: text/plain, Size: 1100 bytes --]

Parsing `ls` is fragile at best and _will_ fail when $tree
contains spaces. Replace this with a glob-generated string
and directly assign it to $ALLSOURCE_ARCHS (Kconfig is
removed as it isn't an architecture); a subshell is implied
by $(), so `cd` doesn't affect the current working directory.

Signed-off-by: Joey Pabalinas <joeypabalinas@gmail.com>

 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/scripts/tags.sh b/scripts/tags.sh
index 78e546ff689c2d5f40..e4aba2983f6272fc44 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -29,14 +29,12 @@ fi
 ignore="$ignore ( -path ${tree}tools ) -prune -o"
 
 # Find all available archs
 find_all_archs()
 {
-	ALLSOURCE_ARCHS=""
-	for arch in `ls ${tree}arch`; do
-		ALLSOURCE_ARCHS="${ALLSOURCE_ARCHS} "${arch##\/}
-	done
+	ALLSOURCE_ARCHS="$(cd "${tree}arch/" && echo *)"
+	ALLSOURCE_ARCHS="${ALLSOURCE_ARCHS/Kconfig}"
 }
 
 # Detect if ALLSOURCE_ARCHS is set. If not, we assume SRCARCH
 if [ "${ALLSOURCE_ARCHS}" = "" ]; then
 	ALLSOURCE_ARCHS=${SRCARCH}
-- 
2.17.0.rc1.35.g90bbd502d54fe92035.dirty


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] scripts/tags.sh: don't parse `ls` for $ALLSOURCE_ARCHS generation
  2018-05-18  6:25 [PATCH v3] scripts/tags.sh: don't parse `ls` for $ALLSOURCE_ARCHS generation Joey Pabalinas
@ 2018-05-18  7:08 ` Masahiro Yamada
  2018-05-18  9:31   ` Joey Pabalinas
  0 siblings, 1 reply; 7+ messages in thread
From: Masahiro Yamada @ 2018-05-18  7:08 UTC (permalink / raw)
  To: Joey Pabalinas
  Cc: Andrew Morton, Linux Kernel Mailing List, Arend van Spriel,
	Robert Jarzmik

2018-05-18 15:25 GMT+09:00 Joey Pabalinas <joeypabalinas@gmail.com>:
> Parsing `ls` is fragile at best and _will_ fail when $tree
> contains spaces. Replace this with a glob-generated string
> and directly assign it to $ALLSOURCE_ARCHS (Kconfig is
> removed as it isn't an architecture); a subshell is implied
> by $(), so `cd` doesn't affect the current working directory.
>
> Signed-off-by: Joey Pabalinas <joeypabalinas@gmail.com>
>
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/tags.sh b/scripts/tags.sh
> index 78e546ff689c2d5f40..e4aba2983f6272fc44 100755
> --- a/scripts/tags.sh
> +++ b/scripts/tags.sh
> @@ -29,14 +29,12 @@ fi
>  ignore="$ignore ( -path ${tree}tools ) -prune -o"
>
>  # Find all available archs
>  find_all_archs()
>  {
> -       ALLSOURCE_ARCHS=""
> -       for arch in `ls ${tree}arch`; do
> -               ALLSOURCE_ARCHS="${ALLSOURCE_ARCHS} "${arch##\/}
> -       done
> +       ALLSOURCE_ARCHS="$(cd "${tree}arch/" && echo *)"
> +       ALLSOURCE_ARCHS="${ALLSOURCE_ARCHS/Kconfig}"
>  }
>
>  # Detect if ALLSOURCE_ARCHS is set. If not, we assume SRCARCH
>  if [ "${ALLSOURCE_ARCHS}" = "" ]; then
>         ALLSOURCE_ARCHS=${SRCARCH}
> --
> 2.17.0.rc1.35.g90bbd502d54fe92035.dirty
>


I do not like hard-coding the file(s) in arch/.

Don't you have an idea to list only directories?
'find -type d' or 'ls -F' or something?


For example, the following worked for me, I wonder
if there is a cleverer way...


# Detect if ALLSOURCE_ARCHS is set. If not, we assume SRCARCH
if [ "${ALLSOURCE_ARCHS}" = "" ]; then
        ALLSOURCE_ARCHS=${SRCARCH}
elif [ "${ALLSOURCE_ARCHS}" = "all" ]; then
        ALLSOURCE_ARCHS="$(cd "${tree}arch" && ls -1 -F | sed -n 's:/$::p')"
fi







-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] scripts/tags.sh: don't parse `ls` for $ALLSOURCE_ARCHS generation
  2018-05-18  7:08 ` Masahiro Yamada
@ 2018-05-18  9:31   ` Joey Pabalinas
  2018-05-18  9:52     ` Masahiro Yamada
  0 siblings, 1 reply; 7+ messages in thread
From: Joey Pabalinas @ 2018-05-18  9:31 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Joey Pabalinas, Andrew Morton, Linux Kernel Mailing List,
	Arend van Spriel, Robert Jarzmik

[-- Attachment #1: Type: text/plain, Size: 714 bytes --]

On Fri, May 18, 2018 at 04:08:44PM +0900, Masahiro Yamada wrote:
> I do not like hard-coding the file(s) in arch/.
> 
> Don't you have an idea to list only directories?
> 'find -type d' or 'ls -F' or something?

How do you feel about the following?

>  # Detect if ALLSOURCE_ARCHS is set. If not, we assume SRCARCH
>  if [ "${ALLSOURCE_ARCHS}" = "" ]; then
>          ALLSOURCE_ARCHS="${SRCARCH}"
>  elif [ "${ALLSOURCE_ARCHS}" = "all" ]; then
>          ALLSOURCE_ARCHS="$(cd "${tree}arch/" && find . -maxdepth 1 -type d | paste -sd' ')"
>          ALLSOURCE_ARCHS="${ALLSOURCE_ARCHS//[.\/]}"
>  fi

If something like that if acceptable, I'll use that for the v4.

-- 
Cheers,
Joey Pabalinas

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] scripts/tags.sh: don't parse `ls` for $ALLSOURCE_ARCHS generation
  2018-05-18  9:31   ` Joey Pabalinas
@ 2018-05-18  9:52     ` Masahiro Yamada
  2018-05-18  9:58       ` Joey Pabalinas
  0 siblings, 1 reply; 7+ messages in thread
From: Masahiro Yamada @ 2018-05-18  9:52 UTC (permalink / raw)
  To: Joey Pabalinas
  Cc: Andrew Morton, Linux Kernel Mailing List, Arend van Spriel,
	Robert Jarzmik

2018-05-18 18:31 GMT+09:00 Joey Pabalinas <joeypabalinas@gmail.com>:
> On Fri, May 18, 2018 at 04:08:44PM +0900, Masahiro Yamada wrote:
>> I do not like hard-coding the file(s) in arch/.
>>
>> Don't you have an idea to list only directories?
>> 'find -type d' or 'ls -F' or something?
>
> How do you feel about the following?
>
>>  # Detect if ALLSOURCE_ARCHS is set. If not, we assume SRCARCH
>>  if [ "${ALLSOURCE_ARCHS}" = "" ]; then
>>          ALLSOURCE_ARCHS="${SRCARCH}"
>>  elif [ "${ALLSOURCE_ARCHS}" = "all" ]; then
>>          ALLSOURCE_ARCHS="$(cd "${tree}arch/" && find . -maxdepth 1 -type d | paste -sd' ')"


Why is 'paste' necessary?


>>          ALLSOURCE_ARCHS="${ALLSOURCE_ARCHS//[.\/]}"
>>  fi
>
> If something like that if acceptable, I'll use that for the v4.
>
> --
> Cheers,
> Joey Pabalinas



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] scripts/tags.sh: don't parse `ls` for $ALLSOURCE_ARCHS generation
  2018-05-18  9:52     ` Masahiro Yamada
@ 2018-05-18  9:58       ` Joey Pabalinas
  2018-05-18 11:03         ` Masahiro Yamada
  0 siblings, 1 reply; 7+ messages in thread
From: Joey Pabalinas @ 2018-05-18  9:58 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Joey Pabalinas, Andrew Morton, Linux Kernel Mailing List,
	Arend van Spriel, Robert Jarzmik

[-- Attachment #1: Type: text/plain, Size: 418 bytes --]

On Fri, May 18, 2018 at 06:52:48PM +0900, Masahiro Yamada wrote:
> Why is 'paste' necessary?

Without it newlines from find are retained from the find
output (at least in bash when I tested it). Though it doesn't
really matter here since we are feeding it to a for loop, I
just wanted to be sure this didn't surprise someone in the
future by squeezing the newlines into spaces.

-- 
Cheers,
Joey Pabalinas

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] scripts/tags.sh: don't parse `ls` for $ALLSOURCE_ARCHS generation
  2018-05-18  9:58       ` Joey Pabalinas
@ 2018-05-18 11:03         ` Masahiro Yamada
  2018-05-18 11:52           ` Joey Pabalinas
  0 siblings, 1 reply; 7+ messages in thread
From: Masahiro Yamada @ 2018-05-18 11:03 UTC (permalink / raw)
  To: Joey Pabalinas
  Cc: Andrew Morton, Linux Kernel Mailing List, Arend van Spriel,
	Robert Jarzmik

2018-05-18 18:58 GMT+09:00 Joey Pabalinas <joeypabalinas@gmail.com>:
> On Fri, May 18, 2018 at 06:52:48PM +0900, Masahiro Yamada wrote:
>> Why is 'paste' necessary?
>
> Without it newlines from find are retained from the find
> output (at least in bash when I tested it). Though it doesn't
> really matter here since we are feeding it to a for loop, I
> just wanted to be sure this didn't surprise someone in the
> future by squeezing the newlines into spaces.
>

Hmm, I would personally get upset about that code.


Does this work?
ALLSOURCE_ARCHS=$(find "${tree}"arch -mindepth 1 -maxdepth 1 -type d
-printf ' %f')

It would leave one leading space, but I do not think it is a big deal.


It would be possible to chop it like follows, but I wonder if it is worth doing.
ALLSOURCE_ARCHS=$(find "${tree}"arch -mindepth 1 -maxdepth 1 -type d
-printf ' %f' | cut -c2-)


> --
> Cheers,
> Joey Pabalinas



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] scripts/tags.sh: don't parse `ls` for $ALLSOURCE_ARCHS generation
  2018-05-18 11:03         ` Masahiro Yamada
@ 2018-05-18 11:52           ` Joey Pabalinas
  0 siblings, 0 replies; 7+ messages in thread
From: Joey Pabalinas @ 2018-05-18 11:52 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Joey Pabalinas, Andrew Morton, Linux Kernel Mailing List,
	Arend van Spriel, Robert Jarzmik

[-- Attachment #1: Type: text/plain, Size: 662 bytes --]

On Fri, May 18, 2018 at 08:03:26PM +0900, Masahiro Yamada wrote:
> Does this work?
> ALLSOURCE_ARCHS=$(find "${tree}"arch -mindepth 1 -maxdepth 1 -type d
> -printf ' %f')

Aha, that actually works perfectly.

> It would leave one leading space, but I do not think it is a big deal.
> 
> 
> It would be possible to chop it like follows, but I wonder if it is worth doing.
> ALLSOURCE_ARCHS=$(find "${tree}"arch -mindepth 1 -maxdepth 1 -type d
> -printf ' %f' | cut -c2-)

Yeah, the leading space isn't really something that is worth worrying
about here in my opinion either.

I'll use this in my v4 then, thanks.

-- 
Cheers,
Joey Pabalinas

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-05-18 11:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-18  6:25 [PATCH v3] scripts/tags.sh: don't parse `ls` for $ALLSOURCE_ARCHS generation Joey Pabalinas
2018-05-18  7:08 ` Masahiro Yamada
2018-05-18  9:31   ` Joey Pabalinas
2018-05-18  9:52     ` Masahiro Yamada
2018-05-18  9:58       ` Joey Pabalinas
2018-05-18 11:03         ` Masahiro Yamada
2018-05-18 11:52           ` Joey Pabalinas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®