[GRASS-SVN] r53672 - grass/trunk/general/g.version

svn_grass at osgeo.org svn_grass at osgeo.org
Sat Nov 3 04:24:46 PDT 2012


Author: martinl
Date: 2012-11-03 04:24:45 -0700 (Sat, 03 Nov 2012)
New Revision: 53672

Modified:
   grass/trunk/general/g.version/g.version.html
   grass/trunk/general/g.version/main.c
Log:
g.version: new flag for printing libraries info (GDAL, PROJ and GEOS)
           manual updated


Modified: grass/trunk/general/g.version/g.version.html
===================================================================
--- grass/trunk/general/g.version/g.version.html	2012-11-02 20:28:37 UTC (rev 53671)
+++ grass/trunk/general/g.version/g.version.html	2012-11-03 11:24:45 UTC (rev 53672)
@@ -1,7 +1,8 @@
 <h2>DESCRIPTION</h2>
 
 <em>g.version</em> prints to standard output the GRASS version number,
-date, the GRASS copyright and GRASS build information.
+date, the GRASS copyright (<b>-c</b> flag), and GRASS build information
+(<b>-b</b> flag).
 
 <h2>NOTES</h2>
 
@@ -9,47 +10,67 @@
 <em>g.version</em> on the command line to see the version number and
 date of the GRASS software currently being run by the user.
 
+<p>
+Information about GRASS
+core <a href="http://grass.osgeo.org/programming7/gislib.html">GIS
+Library</a> can be printed by <b>-r</b> flag.
+
+<p>
+Version numbers of additional libraries
+like <a href="http://trac.osgeo.org/proj/">PROJ.4</a>, <a href="http://gdal.org/">GDAL/OGR</a>
+or <a href="http://trac.osgeo.org/geos">GEOS</a> are printed
+by <b>-e</b> flag.
+
+<p>
+See also function <tt>version()</tt>
+from <a href="http://grass.osgeo.org/wiki/GRASS_Python_Scripting_Library">Python
+Scripting Library</a>.
+
+<div class="code"><pre>
+import grass.script as grass
+
+print grass.version()
+</div>
+
 <h2>EXAMPLES</h2>
 
+<h3>Basic info</h3>
 <div class="code"><pre>
 g.version 
 
-GRASS 7.0.svn45136 (2011)
+GRASS 7.0.svn (2012)
 </pre></div>
 
+<h3>GIS Library info</h3>
+
 <div class="code"><pre>
 g.version -r
 
-GRASS 7.0.svn45136 (2011)
-Revision: 45093 
-Date: 2011-01-20 13:10:50 +0100 (Thu, 20 Jan 2011)
+GRASS 7.0.svn (2012)
+libgis Revision: 52468 
+libgis Date: 2012-07-27 22:53:30 +0200 (Fri, 27 Jul 2012) 
 </pre></div>
 
+<h3>Full info in shell script style</h3>
 <div class="code"><pre>
-g.version -rg
+g.version -rge
 
 version=7.0.svn
-revision=45136
-date=2011
-gis_revision=Revision: 45093 
-gis_date=Date: 2011-01-20 13:10:50 +0100 (Thu, 20 Jan 2011) 
+revision=53670
+date=2012
+libgis_revision=52468 
+libgis_date="2012-07-27 22:53:30 +0200 (Fri, 27 Jul 2012) "
+proj4=4.8.0
+gdal=1.9.2
+geos=3.3.5
 </pre></div>
 
-<h2>PYTHON</h2>
+<h2>AUTHORS</h2>
 
-See <em><a href="http://grass.osgeo.org/programming7/pythonlib.html">Python
-Scripting Library</a></em> for more info.
-
-<div class="code"><pre>
-import grass.script as grass
-
-grass.version()
-</div>
-
-<h2>AUTHOR</h2>
-
 Michael Shapiro, 
 U.S. Army Construction Engineering 
-Research Laboratory
+Research Laboratory<br>
+Extended info by Martin Landa, Czech Technical University in Prague, Czech Republic
 
-<p><i>Last changed: $Date$</i>
+<p>
+<i>Last changed: $Date$</i>

Modified: grass/trunk/general/g.version/main.c
===================================================================
--- grass/trunk/general/g.version/main.c	2012-11-02 20:28:37 UTC (rev 53671)
+++ grass/trunk/general/g.version/main.c	2012-11-03 11:24:45 UTC (rev 53672)
@@ -5,9 +5,10 @@
 * AUTHOR(S):	Michael Shapiro, CERL
 *               Andreas Lange - <andreas.lange rhein-main.de>
 *  	    	Justin Hickey - Thailand - jhickey hpcc.nectec.or.th
+*               Extended info by Martin Landa <landa.martin gmail.com>
 * PURPOSE: 	Output GRASS version number, date and copyright message.
 *             
-* COPYRIGHT:  	(C) 2000-2011 by the GRASS Development Team
+* COPYRIGHT:  	(C) 2000-2012 by the GRASS Development Team
 *
 *   	    	This program is free software under the GPL (>=v2)
 *   	    	Read the file COPYING that comes with GRASS for details.
@@ -20,6 +21,16 @@
 #include <grass/gis.h>
 #include <grass/glocale.h>
 
+#include <proj_api.h>
+
+#ifdef HAVE_GDAL
+#include <gdal_version.h>
+#endif
+
+#ifdef HAVE_GEOS
+#include <geos_c.h>
+#endif
+
 #ifndef GRASS_VERSION_UPDATE_PKG
 #define GRASS_VERSION_UPDATE_PKG "0.1"
 #endif
@@ -35,7 +46,7 @@
 int main(int argc, char *argv[])
 {
     struct GModule *module;
-    struct Flag *copyright, *build, *gish_rev, *shell;
+    struct Flag *copyright, *build, *gish_rev, *shell, *extended;
 
     G_gisinit(argv[0]);
 
@@ -60,6 +71,12 @@
 	_("Print also the GIS library revision number and time");
     gish_rev->guisection = _("Additional info");
 
+    extended = G_define_flag();
+    extended->key = 'e';
+    extended->label = _("Print also extended info for additional libraries");
+    extended->description = _("GDAL/OGR, PROJ.4, GEOS");
+    extended->guisection = _("Additional info");
+
     shell = G_define_flag();
     shell->key = 'g';
     shell->description = _("Print info in shell script style (including SVN revision number)");
@@ -104,5 +121,44 @@
 	G_free_tokens(rev_time);
     }
 
+    if (extended->answer) {
+        char *proj = NULL;
+        G_asprintf(&proj, "%d", PJ_VERSION);
+        if (strlen(proj) == 3) {
+            if (shell->answer)
+                fprintf(stdout, "proj4=%c.%c.%c\n", proj[0], proj[1], proj[2]); 
+            else
+                fprintf(stdout, "PROJ.4: %c.%c.%c\n", proj[0], proj[1], proj[2]); 
+        }
+        else {
+            if (shell->answer)
+                fprintf(stdout, "proj4=%s\n", proj);
+            else
+                fprintf(stdout, "PROJ.4: %s\n", proj);
+        }
+#ifdef HAVE_GDAL
+        if (shell->answer)
+            fprintf(stdout, "gdal=%s\n", GDAL_RELEASE_NAME);
+        else
+            fprintf(stdout, "GDAL/OGR: %s\n", GDAL_RELEASE_NAME);
+#else
+        if (shell->answer)
+            fprintf(stdout, "gdal=\n");
+        else
+            fprintf(stdout, "%s\n", _("GRASS not compiled with GDAL/OGR support"));
+#endif
+#ifdef HAVE_GEOS
+        if (shell->answer)
+            fprintf(stdout, "geos=%s\n", GEOS_VERSION);
+        else
+            fprintf(stdout, "GEOS: %s\n", GEOS_VERSION);
+#else
+        if (shell->answer)
+            fprintf(stdout, "geos=\n");
+        else
+            fprintf(stdout, "%s\n", _("GRASS not compiled with GEOS support"));
+#endif
+    }
+    
     return (EXIT_SUCCESS);
 }



More information about the grass-commit mailing list