Skip to content

Commit

Permalink
g.extension: catch missing modules.xml error (OSGeo#2058)
Browse files Browse the repository at this point in the history
* g.extension: catch error missing modules.xml

Print error message when
 https://grass.osgeo.org/addons/grass8/modules.xml
is missing on server.

So far this error appeared:

```
GRASS nc_spm_08_grass7/user1:grass_main > g.extension -l
...
Fetching list of extensions from GRASS-Addons SVN repository (be
patient)...
https://grass.osgeo.org/addons/grass8/
Traceback (most recent call last):
  File "/home/mneteler/software/grass80/dist.x86_64-pc-linux-gnu/scripts/g.extension", line 682, in list_available_modules
    tree = etree_fromurl(file_url)
  File "/home/mneteler/software/grass80/dist.x86_64-pc-linux-gnu/scripts/g.extension", line 384, in etree_fromurl
    file_ = urlopen(url)
...
  File "/usr/lib64/python3.10/urllib/request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
...
```

With this PR:

```
GRASS nc_spm_08_grass7/user1:grass_main > g.extension -l
/home/mneteler/software/grass80/dist.x86_64-pc-linux-gnu/scripts/g.extension:167: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  from distutils.dir_util import copy_tree
List of available extensions (modules):
ERROR: Download file from
       <https://grass.osgeo.org/addons/grass8/modules.xml>, failed. File
       not on server or check internet connection.
```
  • Loading branch information
neteler committed Nov 7, 2023
1 parent ef2c352 commit ebffe77
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion scripts/g.extension/g.extension.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,18 @@ def etree_fromfile(filename):

def etree_fromurl(url):
"""Create XML element tree from a given URL"""
file_ = urlopen(url)
try:
file_ = urlopen(url)
except URLError:
gscript.fatal(
_(
"Download file from <{url}>,"
" failed. File is not on the server or"
" check your internet connection.".format(
url=url,
),
),
)
return etree.fromstring(file_.read())


Expand Down

0 comments on commit ebffe77

Please sign in to comment.