[GRASS-SVN] r38266 - grass/trunk/scripts/g.extension

svn_grass at osgeo.org svn_grass at osgeo.org
Sun Jul 5 15:02:09 EDT 2009


Author: martinl
Date: 2009-07-05 15:02:08 -0400 (Sun, 05 Jul 2009)
New Revision: 38266

Modified:
   grass/trunk/scripts/g.extension/g.extension.py
Log:
g.extension: new paramaters 'svnurl' & 'menuitem'


Modified: grass/trunk/scripts/g.extension/g.extension.py
===================================================================
--- grass/trunk/scripts/g.extension/g.extension.py	2009-07-05 18:46:46 UTC (rev 38265)
+++ grass/trunk/scripts/g.extension/g.extension.py	2009-07-05 19:02:08 UTC (rev 38266)
@@ -40,12 +40,28 @@
 #% answer: add
 #%end
 #%option
+#% key: svnurl
+#% type: string
+#% key_desc: url
+#% description: SVN Addons repository URL
+#% required: yes
+#% answer: https://svn.osgeo.org/grass/grass-addons/grass7
+#%end
+#%option
 #% key: prefix
 #% type: string
 #% key_desc: path
 #% description: Prefix where to install extension (default: GISBASE)
 #% required: no
 #%end
+#%option
+#% key: menuitem
+#% type: string
+#% key_desc: name
+#% label: Menu item in wxGUI
+#% description: Given as string, e.g. 'Imagery;Filter image'
+#% required: no
+#%end
 
 #%flag
 #%  key: l
@@ -61,9 +77,6 @@
 
 from grass.script import core as grass
 
-# definitions
-svnurl_addons = "https://svn.osgeo.org/grass/grass-addons/"
-
 # temp dir
 tmpdir = grass.tempfile()
 grass.try_remove(tmpdir)
@@ -92,15 +105,13 @@
     
     return c
 
-def list_available_modules():
-    global svnurl_addons
-    
+def list_available_modules(svnurl):
     grass.message('Fetching list of modules from GRASS-Addons SVN (be patient)...')
     pattern = re.compile(r'(<li><a href=".+">)(.+)(</a></li>)', re.IGNORECASE)
     for d in ['d', 'db', 'g', 'i', 'ps',
               'p', 'r', 'r3', 'v']:
         modclass = expand_module_class_name(d)
-        url = svnurl_addons + modclass
+        url = svnurl + '/' + modclass
         f = urllib.urlopen(url)
         if not f:
             grass.warning("Unable to fetch '%s'" % url)
@@ -114,14 +125,13 @@
     global tmpdir
     grass.try_rmdir(tmpdir)
 
-def install_extension(gisbase, module):
+def install_extension(svnurl, gisbase, module):
     if grass.find_program(module):
         grass.warning("Extension '%s' already installed. Will be updated..." % module)
     
     classchar = module.split('.', 1)[0]
     moduleclass = expand_module_class_name(classchar)
-    global svnurl_addons
-    url = svnurl_addons + moduleclass + '/' + module
+    url = svnurl + '/' + moduleclass + '/' + module
         
     grass.message("Fetching '%s' from GRASS-Addons SVN (be patient)..." % module)
     global tmpdir
@@ -177,7 +187,7 @@
 
     # list available modules
     if flags['l']:
-        list_available_modules()
+        list_available_modules(options['svnurl'])
         return 0
     else:
         if not options['extension']:
@@ -190,7 +200,7 @@
         gisbase = os.getenv('GISBASE')
 
     if options['operation'] == 'add':
-        install_extension(gisbase, module)
+        install_extension(options['svnurl'], gisbase, module)
     else: # remove
         remove_extension(gisbase, module)
         



More information about the grass-commit mailing list