Bladeren bron

g.extension: fix path for -l/g/c + wxGUI Windows-related fixes

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@50065 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 13 jaren geleden
bovenliggende
commit
7b62fa3839
2 gewijzigde bestanden met toevoegingen van 13 en 7 verwijderingen
  1. 9 3
      gui/wxpython/modules/extensions.py
  2. 4 4
      scripts/g.extension/g.extension.py

+ 9 - 3
gui/wxpython/modules/extensions.py

@@ -65,7 +65,10 @@ class InstallExtensionWindow(wx.Frame):
         
         self.optionBox = wx.StaticBox(parent = self.panel, id = wx.ID_ANY,
                                       label = " %s " % _("Options"))
-        task = gtask.parse_interface('g.extension')
+        if sys.platform == 'win32':
+            task = gtask.parse_interface('g.extension.py')
+        else:
+            task = gtask.parse_interface('g.extension.py')
         ignoreFlags = ['l', 'c', 'g', 'a', 'f', 'quiet', 'verbose']
         if sys.platform == 'win32':
             ignoreFlags.append('d')
@@ -226,7 +229,7 @@ class InstallExtensionWindow(wx.Frame):
             return
         
         name = self.tree.GetItemText(item)
-        globalvar.grassCmd['all'].append(name)
+        globalvar.grassCmd['all'].add(name)
         
     def OnItemSelected(self, event):
         """!Item selected"""
@@ -324,7 +327,10 @@ class ExtensionTree(ItemTree):
         mdict = dict()
         for line in ret.splitlines():
             if full:
-                key, value = line.split('=', 1)
+                try:
+                    key, value = line.split('=', 1)
+                except ValueError:
+                    continue
                 if key == 'name':
                     try:
                         prefix, name = value.split('.', 1)

+ 4 - 4
scripts/g.extension/g.extension.py

@@ -270,7 +270,7 @@ def get_toolbox_modules(name):
 
 def list_available_modules(mlist = None):
     # try to download XML metadata file first
-    url = "http://grass.osgeo.org/addons/grass%s.xml" % version[0]
+    url = "http://grass.osgeo.org/addons/grass%s/modules.xml" % version[0]
     try:
         f = urlopen(url)
         tree = etree.fromstring(f.read())
@@ -643,7 +643,7 @@ def install_extension_xml(mlist):
     write_xml_modules(fXML, tree)
     
 # install extension on MS Windows
-def install_extension_win():
+def install_extension_win(name):
     ### TODO: do not use hardcoded url - http://wingrass.fsv.cvut.cz/grassXX/addonsX.X.X
     grass.message(_("Downloading precompiled GRASS Addons <%s>...") % options['extension'])
     url = "http://wingrass.fsv.cvut.cz/grass%s%s/addons" % (version[0], version[1])
@@ -652,7 +652,7 @@ def install_extension_win():
     grass.debug("url=%s" % url, 1)
     
     try:
-        f = urlopen(url + '/' + options['extension'] + '.zip')
+        f = urlopen(url + '/' + name + '.zip')
         
         # create addons dir if not exists
         if not os.path.exists(options['prefix']):
@@ -674,7 +674,7 @@ def install_extension_win():
         
         fo.close()
     except HTTPError:
-        grass.fatal(_("GRASS Addons <%s> not found") % options['extension'])
+        grass.fatal(_("GRASS Addons <%s> not found") % name)
     
     return 0