#580: WinGRASS: $GISBASE/etc/gui/scripts/ require something like $(EXE) to run ---------------------------+------------------------------------------------ Reporter: hamish | Owner: [email protected] Type: defect | Status: new Priority: blocker | Milestone: 6.4.0 Component: wxGUI | Version: 6.4.0 RCs Resolution: | Keywords: wingrass Platform: MSWindows XP | Cpu: Unspecified ---------------------------+------------------------------------------------ Comment (by glynn):
Replying to [comment:12 cmbarton]: > > On Windows, 6.4's g.parser explicitly invokes the script via $GRASS_SH. Obviously this won't work for Python scripts. > > Does this mean that it is only expecting shell scripts in Windows? Yes. Windows doesn't understand shebang lines, so g.parser can't "run" the shell scripts as if they were executables; it has to use "$GRASS_SH <script>". It might be possible to use "$GRASS_SH -c <script>", as MSys' bash understands shebang lines. OTOH, for "#!/usr/bin/env python", this will only work if there is an executable named "python" in the path (if it's called e.g. "python25" or it isn't in the path, you lose). Alternatively, the scripts could be installed with a ".sh" extension, relying upon the file associations to run such scripts via bash. Or you could make g.parser examine the first line of the script and choose a suitable interpreter (it isn't as simple as processing a shebang on Unix as we don't know where MSys' virtual filesystem is located and we can't assume that the "#!/usr/bin/env" trick will work with "native" interpreters). > What happens on other platforms (since Python does run without problems in Linux and on Mac)? The code to re-invoke the script is conditionalised upon "#ifdef !__MINGW32!__". Unix (including MacOSX) simply execl()s the script directly, while the Windows version invokes it via $GRASS_SH. -- Ticket URL: <https://trac.osgeo.org/grass/ticket/580#comment:13> GRASS GIS <http://grass.osgeo.org>
_______________________________________________ grass-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-dev
