On Sat, Oct 01, 2016 at 12:44:36AM +0200, Lars Kruse wrote:
> Am Fri, 30 Sep 2016 22:02:27 +0200 schrieb Jan-Tarek Butt <ta...@ring0.de>:
> 
> > ---
> >  scripts/deptest.sh | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/scripts/deptest.sh b/scripts/deptest.sh
> > index 8c859ef..0b0e7a9 100755
> > --- a/scripts/deptest.sh
> > +++ b/scripts/deptest.sh
> > @@ -86,9 +86,9 @@ test_package() # $1=pkgname
> >     [ -n "$pkg" -a -z "$(echo "$pkg" | grep -e '/')" -a "$pkg" != "." -a 
> > "$pkg" != ".." ] || \ die "Package name \"$pkg\" contains illegal 
> > characters"
> >     local SELECTED=
> > -   for conf in $(grep CONFIG_PACKAGE tmp/.packagedeps | grep -E "[ 
> > /]$pkg\$" | sed -e 's,package-$(\(CONFIG_PACKAGE_.*\)).*,\1,'); do
> > +   while IFS= read -r conf; do
> >             grep "$conf=" .config > /dev/null && SELECTED=1 && break
> > -   done
> > +   done < "$(grep CONFIG_PACKAGE tmp/.packagedeps | grep -E "[ /]$pkg\$" | 
> > sed -e 's,package-$(\(CONFIG_PACKAGE_.*\)).*,\1,')"
> 
> Is this really doing what it looks like?
>   ... < "$(command)"
> This should try to read from a file named like the output of "command" - and
> not the lines of command's output.
> 
> I guess, the following approach should do the right thing:
> 
>   grep CONFIG_PACKAGE tmp/.packagedeps | grep -E > "[ /]$pkg\$" | sed -e 
> 's,package-$(\(CONFIG_PACKAGE_.*\)).*,\1,') | while IFS= read -r conf; do
>     ...
>   done
> 
this won't work, because it makes the loop body a subshell, and thus the
assignment of SELECTED will get lost.

to achieve the goal with minimal effort, adding

  local IFS=$'\n'

prior to the loop should be sufficient.

ps: please configure your mailer to not wrap quotes.

_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to