[GRASS-dev] r.mapcalc changed to use G_parser()

I have changed r.mapcalc in 7.x to use G_parser():

  $ r.mapcalc --help
  
  Description:
   Raster map calculator.
  
  Keywords:
   raster
  
  Usage:
   r.mapcalc [expression=string] [input=name] [--overwrite] [--verbose]
     [--quiet]
  
  Flags:
   --o Allow output files to overwrite existing files
   --v Verbose module output
   --q Quiet module output
  
  Parameters:
    expression Expression to evaluate
         input File containing expression to evaluate

Note that, as expression= is the first option, it is the default. This
means that passing an expression on the command line is compatible
with both the old and new interfaces, so long as you:

a) quote the expression, and
b) include a space before the first = sign.

E.g.:
  r.mapcalc "foo = 1"
or:
  r.mapcalc 'foo = 1'

An unquoted expression (i.e. split over multiple arguments) won't
work, nor will omitting the space before the = sign:

  $ r.mapcalc 'foo=1'
  Sorry, <foo> is not a valid parameter

If no options are given, it manufactures "input=-" (which reads from
stdin), so you can continue to use e.g.:

  r.mapcalc < file
or:
  r.mapcalc <<EOF
  foo = 1
  EOF

But unless you need compatibility with previous versions, use input=
explicitly, e.g.:

  r.mapcalc input=file
or:
  r.mapcalc input=- <<EOF
  foo = 1
  EOF

Also, it now recognises --o[verwrite] and $GRASS_OVERWRITE, so you
will get an error if you try to overwrite an existing map without one
of those.

Note that older versions don't understand --o, so if you want to write
a shell script which is compatible with both versions, and which will
overwrite existing maps, use e.g.:

  GRASS_OVERWRITE=1 r.mapcalc 'foo = 1'

Python scripts only need to work with 7.x, so you can just use --o (or
overwrite=True with grass.run_command etc).

--
Glynn Clements <glynn@gclements.plus.com>

wow!

j

2008/8/6 Glynn Clements <glynn@gclements.plus.com>:

I have changed r.mapcalc in 7.x to use G_parser():

       $ r.mapcalc --help

       Description:
        Raster map calculator.

       Keywords:
        raster

       Usage:
        r.mapcalc [expression=string] [input=name] [--overwrite] [--verbose]
          [--quiet]

       Flags:
        --o Allow output files to overwrite existing files
        --v Verbose module output
        --q Quiet module output

       Parameters:
         expression Expression to evaluate
              input File containing expression to evaluate

Note that, as expression= is the first option, it is the default. This
means that passing an expression on the command line is compatible
with both the old and new interfaces, so long as you:

a) quote the expression, and
b) include a space before the first = sign.

E.g.:
       r.mapcalc "foo = 1"
or:
       r.mapcalc 'foo = 1'

An unquoted expression (i.e. split over multiple arguments) won't
work, nor will omitting the space before the = sign:

       $ r.mapcalc 'foo=1'
       Sorry, <foo> is not a valid parameter

If no options are given, it manufactures "input=-" (which reads from
stdin), so you can continue to use e.g.:

       r.mapcalc < file
or:
       r.mapcalc <<EOF
       foo = 1
       EOF

But unless you need compatibility with previous versions, use input=
explicitly, e.g.:

       r.mapcalc input=file
or:
       r.mapcalc input=- <<EOF
       foo = 1
       EOF

Also, it now recognises --o[verwrite] and $GRASS_OVERWRITE, so you
will get an error if you try to overwrite an existing map without one
of those.

Note that older versions don't understand --o, so if you want to write
a shell script which is compatible with both versions, and which will
overwrite existing maps, use e.g.:

       GRASS_OVERWRITE=1 r.mapcalc 'foo = 1'

Python scripts only need to work with 7.x, so you can just use --o (or
overwrite=True with grass.run_command etc).

--
Glynn Clements <glynn@gclements.plus.com>
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev

--
Jachym Cepicky
e-mail: jachym.cepicky gmail com
URL: http://les-ejk.cz
GPG: http://www.les-ejk.cz/pgp/jachym_cepicky-gpg.pub