[GRASS-SVN] r49265 - grass-addons/tools/addons
svn_grass at osgeo.org
svn_grass at osgeo.org
Wed Nov 16 04:57:32 EST 2011
Author: martinl
Date: 2011-11-16 01:57:32 -0800 (Wed, 16 Nov 2011)
New Revision: 49265
Added:
grass-addons/tools/addons/build-xml.py
grass-addons/tools/addons/compile-xml.sh
Modified:
grass-addons/tools/addons/compile.sh
Log:
addons: new tools for compiling addons, see http://trac.osgeo.org/grass/wiki/AddOnsManagement
Added: grass-addons/tools/addons/build-xml.py
===================================================================
--- grass-addons/tools/addons/build-xml.py (rev 0)
+++ grass-addons/tools/addons/build-xml.py 2011-11-16 09:57:32 UTC (rev 49265)
@@ -0,0 +1,91 @@
+#!/usr/bin/env python
+
+import os
+import sys
+
+def get_list(addons):
+ mlist = os.listdir(os.path.join(addons, 'bin')) + \
+ os.listdir(os.path.join(addons, 'scripts'))
+ mlist.sort()
+ return mlist
+
+def start_grass(mlist, g7 = True):
+ if g7:
+ ver = 'grass_trunk'
+ else:
+ ver = 'grass6_devel'
+ gisbase = os.environ['GISBASE'] = os.path.join(os.getenv('HOME'),
+ "src/%s/dist.x86_64-unknown-linux-gnu" % ver)
+
+ gisdbase = os.path.join(gisbase)
+ location = "demolocation"
+ mapset = "PERMANENT"
+
+ sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "python"))
+ import grass.script as grass
+ import grass.script.setup as gsetup
+
+ gsetup.init(gisbase,
+ gisdbase, location, mapset)
+
+ os.environ['PATH'] += os.pathsep + os.path.join(sys.argv[1], 'bin') + os.pathsep + \
+ os.path.join(sys.argv[1], 'scripts')
+
+def parse_modules(fd, mlist):
+ indent = 4
+ for m in mlist:
+ print "Parsing <%s>..." % m,
+ desc, keyw = get_module_metadata(m)
+ fd.write('%s<task name="%s">\n' % (' ' * indent, m))
+ indent += 4
+ fd.write('%s<description>%s</description>\n' % (' ' * indent, desc))
+ fd.write('%s<keywords>%s</keywords>\n' % (' ' * indent, ','.join(keyw)))
+ indent -= 4
+ fd.write('%s</task>\n' % (' ' * indent))
+ if desc:
+ print " SUCCESS"
+ else:
+ print " FAILED"
+
+def get_module_metadata(name):
+ import grass.script.task as gtask
+ try:
+ task = gtask.parse_interface(name)
+ except:
+ return '', ''
+
+ return task.get_description(full = True), \
+ task.get_keywords()
+
+def header(fd):
+ import grass.script.core as grass
+ fd.write('<?xml version="1.0" encoding="UTF-8"?>\n')
+ fd.write('<!DOCTYPE task SYSTEM "grass-addons.dtd">\n') # TODO
+ fd.write('<modules version=%s>\n' % grass.version()['version'])
+
+def footer(fd):
+ fd.write('</modules>\n')
+
+def main():
+ if len(sys.argv) < 2:
+ sys.exit("Usage: %s path_to_addons" % sys.argv[0])
+
+ addons = sys.argv[1]
+
+ path = os.path.join(addons, 'modules.xml')
+ print "-----------------------------------------------------"
+ print "Creating XML file '%s'..." % path
+ print "-----------------------------------------------------"
+ fd = open(path, 'w')
+ start_grass(True)
+
+ header(fd)
+ parse_modules(fd, get_list(addons))
+ footer(fd)
+
+ fd.close()
+
+ return 0
+
+if __name__ == "__main__":
+ sys.exit(main())
Property changes on: grass-addons/tools/addons/build-xml.py
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ text/x-python
Added: svn:eol-style
+ native
Added: grass-addons/tools/addons/compile-xml.sh
===================================================================
--- grass-addons/tools/addons/compile-xml.sh (rev 0)
+++ grass-addons/tools/addons/compile-xml.sh 2011-11-16 09:57:32 UTC (rev 49265)
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+compile() {
+ ./compile.sh $1 $2 $3
+}
+
+build_xml() {
+ ./build-xml.py $1
+}
+
+# recompile GRASS'es
+### $HOME/src/update-grass.sh
+
+# update GRASS Addons SVN
+# WARNING: create symlinks in grass6 first!
+(cd ..; svn up)
+
+# compile AddOns for GRASS 7 and GRASS 6.5
+compile ../../grass7 ~/src/grass_trunk/dist.x86_64-unknown-linux-gnu ~/.grass7/addons
+compile ../../grass6 ~/src/grass6_devel/dist.x86_64-unknown-linux-gnu ~/.grass6/addons
+
+# create XML file for AddOns
+build_xml ~/.grass7/addons
+build_xml ~/.grass6/addons
+
+exit 0
Property changes on: grass-addons/tools/addons/compile-xml.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ text/x-sh
Added: svn:eol-style
+ native
Modified: grass-addons/tools/addons/compile.sh
===================================================================
--- grass-addons/tools/addons/compile.sh 2011-11-16 06:54:16 UTC (rev 49264)
+++ grass-addons/tools/addons/compile.sh 2011-11-16 09:57:32 UTC (rev 49265)
@@ -18,6 +18,9 @@
mkdir $ADDON_PATH/log
touch $ADDON_PATH/make.log
+echo "-----------------------------------------------------"
+echo "AddOns '$ADDON_PATH'..."
+echo "-----------------------------------------------------"
for c in "display" "general" "imagery" "raster" "vector"; do
if [ ! -d $c ]; then
continue
@@ -25,7 +28,7 @@
cd $c
for m in `ls -d */ 2>/dev/null` ; do
m="${m%%/}"
- echo "Compiling $m..."
+ echo -n "Compiling $m..."
cd $m
make MODULE_TOPDIR=$TOPDIR \
BIN=$ADDON_PATH/bin \
@@ -36,8 +39,10 @@
MANIFEST= WINDRES= MANIFEST_OBJ= >$ADDON_PATH/log/${m}.log 2>&1
if [ `echo $?` -eq 0 ] ; then
printf "%-30s%s\n" "$c/$m" "SUCCESS" >> $ADDON_PATH/make.log
+ echo " SUCCESS"
else
printf "%-30s%s\n" "$c/$m" "FAILED" >> $ADDON_PATH/make.log
+ echo " FAILED"
fi
cd ..
done
More information about the grass-commit
mailing list