On 04/05/16 00:50, Bartolomei.Chris wrote:
Hi Martin
The problem I am having is that my bourne shell scripts (#!/bin/sh) cannot
execute the bat files ... the scripts call the GRASS modules by name i.e.
v.db.update map=stream_7 layer=3 column=block_col value="-1" --quiet
In GRASS 6.4.4 (with msys) I could just run the scripts and everything ran fine.
I've upgraded to 7.0.4 (from OSGEO4W and with msys) and now my scripts crash
any time it tries to execute a GRASS module that is a bat wrapper saying it
can't execute them.
The error message is sh: v.db.update: command not found
There is no v.db.update.exe ... only v.db.update.bat ... and, of course,
v.db.update.py in the scripts directory.
I have to code it as this now:
python $PY_SCRIPTS/v.db.update.py map=stream_7 layer=3 column=block_col
value="-1" --quiet
(where PY_SCRIPTS is the path to the scripts, not the bat wrappers... i.e.
c:/OSGEO4W64/apps/Grass/Grass-7.0.4/scripts)
Note that v.db.update is just one of numerous examples ... I tried to attach
the list but it bounced.
I understand that some of this is written in C and some of this is written in
python ... is it not possible to compile the python into an executable binary
(.exe) and just have .exe's in bin?
That would sure save some grief ...
As Helmut has tried to clarify, the issue is with msys, not with GRASS.
More fundamentally, the decision was made to make GRASS on Windows a
Windows experience, not a *nix emulation experience. This is one of the
reasons why scripts were translated to Python. Users are, therefore,
strongly encouraged to use Python as scripting language and not bash.
This allows to run your scripts in the standard cmd console and thus not
be hit by the incompatibilities between windows logic and *nix logic.
See [1] for a discussion on that topic. For the general discussion on
how to handle Python scripts and the installation of Python on the
machine, see [2] (be warned: it is one of the longest threads in the
grass-dev mailing list - spanning several months).
I understand that handling legacy scripts is an issue for many. But then
again a change in major version number does imply API changes... I don't
have a magical solution, here. The technically best solution is probably
to translate all your scripts to Python, but I am aware that this is not
always an option in the real world out there...
Moritz
[1] https://lists.osgeo.org/pipermail/grass-dev/2014-October/071263.html
[2] https://lists.osgeo.org/pipermail/grass-dev/2013-October/065896.html
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user