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