[GRASS-SVN] r65868 - grass/trunk/scripts/g.extension
svn_grass at osgeo.org
svn_grass at osgeo.org
Sat Aug 8 19:45:23 PDT 2015
Author: wenzeslaus
Date: 2015-08-08 19:45:22 -0700 (Sat, 08 Aug 2015)
New Revision: 65868
Modified:
grass/trunk/scripts/g.extension/g.extension.py
Log:
g.extension: avoid using option svnurl outside main fun
Modified: grass/trunk/scripts/g.extension/g.extension.py
===================================================================
--- grass/trunk/scripts/g.extension/g.extension.py 2015-08-08 21:38:23 UTC (rev 65867)
+++ grass/trunk/scripts/g.extension/g.extension.py 2015-08-09 02:45:22 UTC (rev 65868)
@@ -398,18 +398,21 @@
"""List modules available in the repository
Tries to use XML metadata file first. Fallbacks to HTML page with a list.
+
+ :param url: URL of the directory (file name will be attached)
+ :param mlist: list only modules in this list
"""
- url = url + "modules.xml"
- grass.debug("url=%s" % url, 1)
+ file_url = url + "modules.xml"
+ grass.debug("url=%s" % file_url, 1)
try:
- tree = etree_fromurl(url, proxies=PROXIES)
+ tree = etree_fromurl(file_url, proxies=PROXIES)
except ETREE_EXCEPTIONS:
grass.warning(_("Unable to parse '%s'. Trying to scan"
- " SVN repository (may take some time)...") % url)
- list_available_extensions_svn()
+ " SVN repository (may take some time)...") % file_url)
+ list_available_extensions_svn(url)
return
except (HTTPError, URLError, IOError, OSError):
- list_available_extensions_svn()
+ list_available_extensions_svn(url)
return
for mnode in tree.findall('task'):
@@ -430,14 +433,22 @@
else:
print(name)
-# list extensions (scan SVN repo)
-
-def list_available_extensions_svn():
+# TODO: this is now broken/dead code, SVN is basically not used
+# fallback for Trac should parse Trac HTML page
+# this might be useful for potential SVN repos or anything
+# which would list the extensions/addons as list
+def list_available_extensions_svn(url):
"""List available extensions from HTML given by URL
+ Filename is generated based on the module class/family.
+
``<li><a href=...`` is parsed to find module names.
+ This works well for HTML page generated by Subversion.
+
+ :param url: a directory URL (filename will be attached)
"""
+ gscript.debug("list_available_extensions_svn(url=%s)" % url, 2)
grass.message(_('Fetching list of extensions from'
' GRASS-Addons SVN repository (be patient)...'))
pattern = re.compile(r'(<li><a href=".+">)(.+)(</a></li>)', re.IGNORECASE)
@@ -455,7 +466,8 @@
modclass = expand_module_class_name(prefix)
grass.verbose(_("Checking for '%s' modules...") % modclass)
- url = '%s/%s' % (options['svnurl'], modclass)
+ # construct a full URL of a file
+ url = '%s/%s' % (url, modclass)
grass.debug("url = %s" % url, debug=2)
try:
file_ = urlopen(url, proxies=PROXIES)
@@ -472,18 +484,23 @@
if name.split('.', 1)[0] == prefix:
print(name)
- # get_wxgui_extensions()
+ # get_wxgui_extensions(url)
-def get_wxgui_extensions():
- """Return list of extensions/addons in wxGUI directory at given URL"""
+# TODO: this is a dead code, not clear why not used, but seems not needed
+def get_wxgui_extensions(url):
+ """Return list of extensions/addons in wxGUI directory at given URL
+
+ :param url: a directory URL (filename will be attached)
+ """
mlist = list()
grass.debug('Fetching list of wxGUI extensions from '
'GRASS-Addons SVN repository (be patient)...')
pattern = re.compile(r'(<li><a href=".+">)(.+)(</a></li>)', re.IGNORECASE)
grass.verbose(_("Checking for '%s' modules...") % 'gui/wxpython')
- url = '%s/%s' % (options['svnurl'], 'gui/wxpython')
+ # construct a full URL of a file
+ url = '%s/%s' % (url, 'gui/wxpython')
grass.debug("url = %s" % url, debug=2)
file_ = urlopen(url, proxies=PROXIES)
if not file_:
@@ -1584,6 +1601,8 @@
if sys.platform != "win32":
check_progs()
+ original_url = options['svnurl']
+
# manage proxies
global PROXIES
if options['proxy']:
@@ -1600,9 +1619,9 @@
# using dummy module, we don't need any module URL now,
# but will work only as long as the function does not check
# if the URL is actually valid or something
- source, url = resolve_source_code(name='r.dummy',
- url=options['svnurl'])
- xmlurl = resolve_xmlurl_prefix(options['svnurl'], source=source)
+ source, url = resolve_source_code(name='dummy',
+ url=original_url)
+ xmlurl = resolve_xmlurl_prefix(original_url, source=source)
list_available_extensions(xmlurl)
return 0
elif flags['a']:
@@ -1620,8 +1639,8 @@
if options['operation'] == 'add':
check_dirs()
source, url = resolve_source_code(name=options['extension'],
- url=options['svnurl'])
- xmlurl = resolve_xmlurl_prefix(options['svnurl'], source=source)
+ url=original_url)
+ xmlurl = resolve_xmlurl_prefix(original_url, source=source)
install_extension(source=source, url=url, xmlurl=xmlurl)
else: # remove
remove_extension(force=flags['f'])
More information about the grass-commit
mailing list