2018-05-18 15:25 GMT+09:00 Joey Pabalinas <joeypabali...@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 <joeypabali...@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

Reply via email to