소스 검색

g.extension: check if target directory is writable

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@65389 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 10 년 전
부모
커밋
4f48912866
1개의 변경된 파일7개의 추가작업 그리고 0개의 파일을 삭제
  1. 7 0
      scripts/g.extension/g.extension.py

+ 7 - 0
scripts/g.extension/g.extension.py

@@ -1034,6 +1034,7 @@ def main():
     # define path
     if flags['s']:
         options['prefix'] = os.environ['GISBASE']
+    
     if options['prefix'] == '$GRASS_ADDON_BASE':
         if not os.getenv('GRASS_ADDON_BASE'):
             grass.warning(_("GRASS_ADDON_BASE is not defined, "
@@ -1041,6 +1042,12 @@ def main():
             options['prefix'] = os.path.join(os.environ['HOME'], '.grass%s' % version[0], 'addons')
         else:
             options['prefix'] = os.environ['GRASS_ADDON_BASE']
+
+    if not os.access(options['prefix'], os.W_OK):
+        grass.fatal(_("You don't have permission to install extension to <{}>. "
+                      "Try to run {} as administrator "
+                      "(or as sudo).").format(options['prefix'], 'g.extension'))
+
     if 'svn.osgeo.org/grass/grass-addons/grass7' in options['svnurl']:
         # use pregenerated modules XML file
         xmlurl = "http://grass.osgeo.org/addons/grass%s" % version[0]