[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