[GRASS-SVN] r57406 - grass/trunk/scripts/g.extension.all
svn_grass at osgeo.org
svn_grass at osgeo.org
Sun Aug 4 13:51:12 PDT 2013
Author: martinl
Date: 2013-08-04 13:51:12 -0700 (Sun, 04 Aug 2013)
New Revision: 57406
Modified:
grass/trunk/scripts/g.extension.all/g.extension.all.py
Log:
g.extension.all: implement `operation: remove`
Modified: grass/trunk/scripts/g.extension.all/g.extension.all.py
===================================================================
--- grass/trunk/scripts/g.extension.all/g.extension.all.py 2013-08-04 20:32:11 UTC (rev 57405)
+++ grass/trunk/scripts/g.extension.all/g.extension.all.py 2013-08-04 20:51:12 UTC (rev 57406)
@@ -2,13 +2,13 @@
############################################################################
#
-# MODULE: g.extension.rebuild.all
+# MODULE: g.extension.all
#
-# AUTHOR(S): Martin Landa <landa.martin gmail.com>
+# AUTHOR(S): Martin Landa <landa.martin gmail.com>
#
-# PURPOSE: Rebuild locally installed GRASS Addons extensions
+# PURPOSE: Rebuilds or removes locally installed GRASS Addons extensions
#
-# COPYRIGHT: (C) 2011 by Martin Landa, and the GRASS Development Team
+# COPYRIGHT: (C) 2011-2013 by Martin Landa, and the GRASS Development Team
#
# This program is free software under the GNU General
# Public License (>=v2). Read the file COPYING that
@@ -17,15 +17,23 @@
#############################################################################
#%module
-#% label: Rebuilds all locally installed GRASS Addons extensions.
+#% label: Rebuilds or removes all locally installed GRASS Addons extensions.
#% description: By default only extensions built against different GIS Library are rebuilt.
#% keywords: general
#% keywords: installation
#% keywords: extensions
#%end
+#%option
+#% key: operation
+#% type: string
+#% description: Operation to be performed
+#% required: no
+#% options: rebuild,remove
+#% answer: rebuild
+#%end
#%flag
#% key: f
-#% description: Force to rebuild all extensions
+#% label: Force operation (required for removal)
#% end
import os
@@ -68,22 +76,42 @@
return ret
def main():
- if flags['f']:
+ remove = options['operation'] == 'remove'
+ if remove or flags['f']:
extensions = grass.read_command('g.extension',
quiet = True, flags = 'a').splitlines()
else:
extensions = get_extensions()
if not extensions:
- grass.info(_("Nothing to rebuild."))
+ if remove:
+ grass.info(_("No extension found. Nothing to remove."))
+ else:
+ grass.info(_("Nothing to rebuild. Rebuilding process can be forced with -f flag."))
return 0
+ if remove and not flags['f']:
+ grass.message(_("List of extensions to be removed:"))
+ print os.linesep.join(extensions)
+ grass.message(_("You must use the force flag (-f) to actually remove them. Exiting."))
+ return 0
+
for ext in extensions:
grass.message('-' * 60)
- grass.message(_("Reinstalling extension <%s>...") % ext)
+ if remove:
+ grass.message(_("Removing extension <%s>...") % ext)
+ else:
+ grass.message(_("Reinstalling extension <%s>...") % ext)
grass.message('-' * 60)
- grass.run_command('g.extension',
- extension = ext)
+ if remove:
+ operation = 'remove'
+ operation_flags = 'f'
+ else:
+ operation = 'add'
+ operation_flags = ''
+ if 0 != grass.run_command('g.extension', flags = operation_flags,
+ extension = ext, operation = operation):
+ grass.error(_("Unable to process extension:%s") % ext)
return 0
More information about the grass-commit
mailing list