[GRASS-dev] [bug #4498] (grass) d.out.png script copied
to docs/html/ in err
Glynn Clements
glynn at gclements.plus.com
Wed May 24 17:02:13 EDT 2006
Markus Neteler wrote:
> Request Tracker wrote:
>
> >this bug's URL: http://intevation.de/rt/webrt?serial_num=4498
> >-------------------------------------------------------------------------
> >
> >Subject: d.out.png script copied to docs/html/ in err
> >
> >Hi,
> >
> >I just noticed that the d.out.png script is copied to $GISBASE/docs/html/.
> >I guess the Makefile figures it is an image for the help page.
>
> Right.
>
> How to get
>
> -for file in *.png *.jpg ; do \
> head -1 $$file | grep '#!/bin/sh' > /dev/null \
> if [ $$? -ne 0 ] ; then
> $(INSTALL_DATA) $$file $(GISBASE)/docs/html \
> fi \
> done 2> /dev/null ; true
>
> working (in include/Make/Html.make)?
Add some semicolons, and a backslash.
The above is equivalent to two separate command lines, both erroneous:
-for file in *.png *.jpg ; do head -1 $$file | grep '#!/bin/sh' > /dev/null if [ $$? -ne 0 ] ; then
$(INSTALL_DATA) $$file $(GISBASE)/docs/html ; fi done 2> /dev/null ; true
The missing backslash after the "then" causes the command to be split
into two, each executed by a separate invocation of "/bin/sh -c ...";
as the do/done and if/fi are both split in half, that won't work.
Also, the missing semicolons before the "if" and the "done" will
result in syntax errors.
Also, I would just check for #! at the beginning of the line;
#!/bin/sh is too specific (e.g. you could have a space after the #!,
or it might be a script in some other language). Any file which begins
with #! is treated as a script by the kernel (i.e. exec()ing the file
will execute the program whose path follows the #! with the script's
path given as an argument).
Finally, "head -n 1" may be more portable than "head -1" (recent
versions generate a warning).
Try:
-for file in *.png *.jpg ; do \
head -n 1 $$file | grep '^#!' > /dev/null ; \
if [ $$? -ne 0 ] ; then \
$(INSTALL_DATA) $$file $(GISBASE)/docs/html ; \
fi \
done 2> /dev/null ; true
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list