You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gump.apache.org by bo...@apache.org on 2010/04/26 06:35:43 UTC
svn commit: r937932 - in /gump/live/python/gump/core: build/mvn.py
model/builder.py
Author: bodewig
Date: Mon Apr 26 04:35:43 2010
New Revision: 937932
URL: http://svn.apache.org/viewvc?rev=937932&view=rev
Log:
separateLocalRepository now can be a name in addition to a boolean so that several projects can share one
Modified:
gump/live/python/gump/core/build/mvn.py
gump/live/python/gump/core/model/builder.py
Modified: gump/live/python/gump/core/build/mvn.py
URL: http://svn.apache.org/viewvc/gump/live/python/gump/core/build/mvn.py?rev=937932&r1=937931&r2=937932&view=diff
==============================================================================
--- gump/live/python/gump/core/build/mvn.py (original)
+++ gump/live/python/gump/core/build/mvn.py Mon Apr 26 04:35:43 2010
@@ -27,7 +27,7 @@ from gump.util.file import FILE_TYPE_CON
from gump.util.process.command import Cmd, CMD_STATE_SUCCESS, \
CMD_STATE_TIMED_OUT, Parameters
from gump.util.process.launcher import execute
-from gump.util.tools import catFileToFileHolder, wipeDirectoryTree
+from gump.util.tools import catFileToFileHolder
from time import strftime
@@ -44,6 +44,92 @@ def write_mirror_entry(props, prefix, mi
<mirrorOf>%s</mirrorOf>
</mirror>""" % (mirror_of, mirror_of, port, prefix, mirror_of) )
+def locateMavenProjectFile(project):
+ """Return Maven project file location"""
+ basedir = project.mvn.getBaseDirectory() or project.getBaseDirectory()
+ return os.path.abspath(os.path.join(basedir, 'pom.xml'))
+
+def locateMavenSettings(project):
+ #
+ # Where to put this:
+ #
+ basedir = project.mvn.getBaseDirectory() or project.getBaseDirectory()
+ return os.path.abspath(os.path.join(basedir, 'gump_mvn_settings.xml'))
+
+def getMavenProperties(project):
+ """ Get properties for a project """
+ properties = Parameters()
+ for property in project.getMvn().getProperties():
+ properties.addPrefixedNamedParameter('-D', property.name, \
+ property.value, '=')
+ return properties
+
+def getMavenCommand(project, languageHelper):
+ """ Build an Maven command for this project """
+ maven = project.mvn
+
+ # The maven goal (or none == maven default goal)
+ goal = maven.getGoal()
+
+ # Optional 'verbose' or 'debug'
+ verbose = maven.isVerbose()
+ debug = maven.isDebug()
+
+ #
+ # Where to run this:
+ #
+ basedir = maven.getBaseDirectory() or project.getBaseDirectory()
+
+ #
+ # Build a classpath (based upon dependencies)
+ #
+ (classpath, _bootclasspath) = languageHelper.getClasspaths(project)
+
+ # Run Maven...
+ cmd = Cmd('mvn', 'build_' + project.getModule().getName() + '_' + \
+ project.getName(), basedir, {'CLASSPATH':classpath})
+
+ cmd.addParameter('--batch-mode')
+
+ #
+ # Allow maven-level debugging...
+ #
+ if project.getWorkspace().isDebug() or project.isDebug() or debug:
+ cmd.addParameter('--debug')
+ if project.getWorkspace().isVerbose() \
+ or project.isVerbose() or verbose:
+ cmd.addParameter('--exception')
+
+ props = getMavenProperties(project)
+ cmd.addNamedParameters(props)
+
+ #
+ # Suppress downloads
+ #
+
+ # As long as we don't know how to pass our local artifacts to
+ # mvn there is no point in using the offline mode
+ #
+ # cmd.addParameter('--offline')
+
+ #
+ # This sets the *defaults*, a workspace could override them.
+ #
+ #cmd.addPrefixedParameter('-D', 'build.sysclasspath', 'only', '=')
+
+ cmd.addParameter('--settings')
+ cmd.addParameter(locateMavenSettings(project))
+
+ # End with the goal...
+ if goal:
+ for goalParam in goal.split(','):
+ cmd.addParameter(goalParam)
+
+ return cmd
+
+def needsSeparateLocalRepository(project):
+ return project.mvn.needsSeparateLocalRepository()
+
class Maven2Builder(RunSpecific):
def __init__(self, run):
@@ -66,7 +152,7 @@ class Maven2Builder(RunSpecific):
#
# Get the appropriate build command...
#
- cmd = self.getMavenCommand(project, languageHelper)
+ cmd = getMavenCommand(project, languageHelper)
if cmd:
# Execute the command ....
@@ -88,94 +174,14 @@ class Maven2Builder(RunSpecific):
project.changeState(STATE_SUCCESS)
if project.wasBuilt():
- pomFile = self.locateMavenProjectFile(project)
+ pomFile = locateMavenProjectFile(project)
if os.path.exists(pomFile):
project.addDebug('Maven POM in: ' + pomFile)
catFileToFileHolder(project, pomFile, FILE_TYPE_CONFIG)
-
- wipeDirectoryTree(self.locateLocalRepo(project), False)
- #
- # Build an Maven command for this project
- #
- def getMavenCommand(self, project, languageHelper):
- maven = project.mvn
-
- # The maven goal (or none == maven default goal)
- goal = maven.getGoal()
-
- # Optional 'verbose' or 'debug'
- verbose = maven.isVerbose()
- debug = maven.isDebug()
-
- #
- # Where to run this:
- #
- basedir = maven.getBaseDirectory() or project.getBaseDirectory()
-
- #
- # Build a classpath (based upon dependencies)
- #
- (classpath, bootclasspath) = languageHelper.getClasspaths(project)
-
- # Run Maven...
- cmd = Cmd('mvn', 'build_' + project.getModule().getName() + '_' + \
- project.getName(), basedir, {'CLASSPATH':classpath})
-
- cmd.addParameter('--batch-mode')
-
- #
- # Allow maven-level debugging...
- #
- if project.getWorkspace().isDebug() or project.isDebug() or debug:
- cmd.addParameter('--debug')
- if project.getWorkspace().isVerbose() \
- or project.isVerbose() or verbose:
- cmd.addParameter('--exception')
-
- props = self.getProperties(project)
- cmd.addNamedParameters(props)
-
- #
- # Suppress downloads
- #
-
- # As long as we don't know how to pass our local artifacts to
- # mvn there is no point in using the offline mode
- #
- # cmd.addParameter('--offline')
-
- #
- # This sets the *defaults*, a workspace could override them.
- #
- #cmd.addPrefixedParameter('-D', 'build.sysclasspath', 'only', '=')
-
- cmd.addParameter('--settings')
- cmd.addParameter(self.locateMvnSettings(project))
-
- # End with the goal...
- if goal:
- for goalParam in goal.split(','):
- cmd.addParameter(goalParam)
-
- return cmd
-
- def getProperties(self, project):
- """ Get properties for a project """
- properties = Parameters()
- for property in project.getMvn().getProperties():
- properties.addPrefixedNamedParameter('-D', property.name, \
- property.value, '=')
- return properties
-
- def locateMavenProjectFile(self, project):
- """Return Maven project file location"""
- basedir = project.mvn.getBaseDirectory() or project.getBaseDirectory()
- return os.path.abspath(os.path.join(basedir, 'pom.xml'))
-
# Do this even if not ok
- def performPreBuild(self, project, languageHelper, stats):
+ def performPreBuild(self, project, languageHelper, _stats):
# Maven requires a build.properties to be generated...
if project.okToPerformWork():
@@ -198,14 +204,14 @@ class Maven2Builder(RunSpecific):
project.addError(message)
project.changeState(STATE_FAILED, REASON_PREBUILD_FAILED)
- def preview(self, project, languageHelper, stats):
- command = self.getMavenCommand(project, languageHelper)
+ def preview(self, project, languageHelper, _stats):
+ command = getMavenCommand(project, languageHelper)
command.dump()
- def generateMvnSettings(self, project, languageHelper):
+ def generateMvnSettings(self, project, _languageHelper):
"""Set repository for a Maven2 project"""
- settingsFile = self.locateMvnSettings(project)
+ settingsFile = locateMavenSettings(project)
# Ensure containing directory exists, or make it.
settingsdir = os.path.dirname(settingsFile)
if not os.path.exists(settingsdir):
@@ -217,11 +223,13 @@ class Maven2Builder(RunSpecific):
project.addWarning('Overriding Maven2 settings: [' + settingsFile \
+ ']')
- if self.needsSeparateLocalRepository(project):
+ if needsSeparateLocalRepository(project):
localRepositoryDir = self.locateLocalRepo(project)
else:
- localRepositoryDir = \
- self.run.getWorkspace().getLocalRepositoryDirectory()
+ localRepositoryDir = os.path.abspath(\
+ os.path.join(self.run.getWorkspace()
+ .getLocalRepositoryDirectory(), "shared")
+ )
props = open(settingsFile, 'w')
@@ -257,21 +265,14 @@ class Maven2Builder(RunSpecific):
return settingsFile
- def locateMvnSettings(self, project):
- #
- # Where to put this:
- #
- basedir = project.mvn.getBaseDirectory() or project.getBaseDirectory()
- return os.path.abspath(os.path.join(basedir, 'gump_mvn_settings.xml'))
-
def locateLocalRepo(self, project):
#
# Where to put the local repository
#
+ name = project.mvn.getLocalRepositoryName()
+ if not name:
+ name = project.getName() + ".mvnlocalrepo"
return os.path.abspath(os.path.join(self.run.getWorkspace()\
- .getBaseDirectory(),
- project.getName() \
- + ".mvnlocalrepo"))
-
- def needsSeparateLocalRepository(self, project):
- return project.mvn.needsSeparateLocalRepository()
+ .getLocalRepositoryDirectory(),
+ name
+ ))
Modified: gump/live/python/gump/core/model/builder.py
URL: http://svn.apache.org/viewvc/gump/live/python/gump/core/model/builder.py?rev=937932&r1=937931&r2=937932&view=diff
==============================================================================
--- gump/live/python/gump/core/model/builder.py (original)
+++ gump/live/python/gump/core/model/builder.py Mon Apr 26 04:35:43 2010
@@ -18,234 +18,243 @@
"""
This module contains information on builders (ant/maven/script)
-
-"""
-
-from time import localtime, strftime, tzname
-from gump.util.work import *
-from gump.util.note import *
+"""
-from gump.core.model.state import *
-from gump.core.model.object import *
-from gump.core.model.misc import *
-from gump.core.model.depend import *
-from gump.core.model.property import *
-
+import os
+import sys
from xml.dom import getDOMImplementation
+from gump.util import getIndent
+from gump.util.domutils import domAttributeIsTrue, getDomAttributeValue, \
+ hasDomAttribute, hasDomChild, transferDomAttributes
+
+from gump.core.model.depend import INHERIT_NONE, ProjectDependency
+from gump.core.model.object import ModelObject
+from gump.core.model.property import PropertyContainer
+
# represents a generic build (e.g. <ant/>) element
class Builder(ModelObject, PropertyContainer):
""" A build command (within a project)"""
- def __init__(self,dom,project):
- ModelObject.__init__(self,dom,project)
- PropertyContainer.__init__(self)
-
- self.basedir=None
-
+ def __init__(self, dom, project):
+ ModelObject.__init__(self, dom, project)
+ PropertyContainer.__init__(self)
+
+ self.basedir = None
+
# Store owning project
- self.project=project
-
+ self.project = project
+
def __str__(self):
"""
Display what project this is on, if possible.
- """
+ """
if not self.project:
return self.__class__.__name__
else:
return self.__class__.__name__ + ' on ' + `self.project`
-
+
#
# expand properties - in other words, do everything to complete the
# entry that does NOT require referencing another project
#
- def expand(self,project,workspace):
- self.expandDomDependencies(project,workspace)
- self.expandDomProperties(project,workspace)
-
- def expandDomDependencies(self,project,workspace):
+ def expand(self, project, workspace):
+ self.expandDomDependencies(project, workspace)
+ self.expandDomProperties(project, workspace)
+
+ def expandDomDependencies(self, project, workspace):
"""
Convert all depend elements into property elements, and
move the dependency onto the project
"""
- impl=getDOMImplementation()
-
+ impl = getDOMImplementation()
+
for ddom in self.getDomChildIterator('depend'):
-
+
pdom = impl.createDocument(None, 'property', None)
pelement = pdom.documentElement
-
+
# Transfer depend attributes over as a basis for
# the property
- transferDomAttributes(ddom,pelement)
-
+ transferDomAttributes(ddom, pelement)
+
# Fix the reference to a outputpath
- pelement.setAttribute('reference','outputpath')
+ pelement.setAttribute('reference', 'outputpath')
# Name the xmlproperty...
- if hasDomAttribute(ddom,'property'):
- pelement.setAttribute('name',getDomAttributeValue(ddom,'property'))
- elif not hasDomAttribute(pelement,'name'):
- # :TODO: Reconsider later, but default to project name for now...
- pname=getDomAttributeValue(ddom,'project')
- pelement.setAttribute('name',pname)
- project.addWarning('Unnamed property for [' + project.name + '] in depend on: ' + pname )
-
+ if hasDomAttribute(ddom, 'property'):
+ pelement.setAttribute('name',
+ getDomAttributeValue(ddom, 'property'))
+ elif not hasDomAttribute(pelement, 'name'):
+ pname = getDomAttributeValue(ddom, 'project')
+ pelement.setAttribute('name', pname)
+ project.addWarning('Unnamed property for [' + project.name \
+ + '] in depend on: ' + pname )
+
# :TODO: AJ added this, no idea if it is right/needed.
- if hasDomAttribute(ddom,'id'):
- pelement.setAttribute('ids',getDomAttributeValue(ddom,'id'))
-
+ if hasDomAttribute(ddom, 'id'):
+ pelement.setAttribute('ids', getDomAttributeValue(ddom, 'id'))
+
# <depend wants the classpath, unless <noclasspath/> stated
# as a child element or attribute.
- if not hasDomChild(ddom,'noclasspath') and not hasDomAttribute(ddom,'noclasspath'):
- pelement.setAttribute('classpath','add')
-
+ if not hasDomChild(ddom, 'noclasspath') \
+ and not hasDomAttribute(ddom, 'noclasspath'):
+ pelement.setAttribute('classpath', 'add')
+
# Store it
- self.expandDomProperty(pelement,project,workspace)
+ self.expandDomProperty(pelement, project, workspace)
self.importProperty(pelement)
-
+
# Stash the constructed property DOM (the doc above the element)
- if not hasattr(project,'extraDoms'):
- project.extraDoms=[]
+ if not hasattr(project, 'extraDoms'):
+ project.extraDoms = []
project.extraDoms.append(pdom)
-
- def expandDomProperties(self,project,workspace):
+
+ def expandDomProperties(self, project, workspace):
#
# convert Ant property elements which reference a project
# into dependencies
#
for pdom in self.getDomChildIterator('property'):
- self.expandDomProperty(pdom,project,workspace)
+ self.expandDomProperty(pdom, project, workspace)
self.importProperty(pdom)
-
+
#
# convert Ant sysproperty elements which reference a project
# into dependencies
#
for spdom in self.getDomChildIterator('sysproperty'):
- self.expandDomProperty(spdom,project,workspace)
+ self.expandDomProperty(spdom, project, workspace)
self.importSysProperty(spdom)
-
+
#
# Expands
#
- def expandDomProperty(self,pdom,project,workspace):
-
+ def expandDomProperty(self, pdom, project, workspace):
+
# :TODO: Cleanup this Workaround
- name=getDomAttributeValue(pdom,'name',getDomAttributeValue(pdom,'project'))
-
+ name = getDomAttributeValue(pdom, 'name',
+ getDomAttributeValue(pdom, 'project'))
+
# Check if the pdom comes from another project
- if not hasDomAttribute(pdom,'project'): return
- projectName=getDomAttributeValue(pdom,'project')
+ if not hasDomAttribute(pdom, 'project'):
+ return
+ projectName = getDomAttributeValue(pdom, 'project')
# If that project is the one we have in hand
- if projectName==project.getName(): return
-
+ if projectName == project.getName():
+ return
+
# If the pdom is not as simple as srcdir
- reference=getDomAttributeValue(pdom,'reference')
- if reference=='srcdir': return
-
+ reference = getDomAttributeValue(pdom, 'reference')
+ if reference == 'srcdir':
+ return
+
# If it isn't already a classpath dependency
if project.hasFullDependencyOnNamedProject(projectName):
self.addDebug('Dependency on ' + projectName + \
' exists, no need to add for property ' + \
name + '.')
return
-
+
# If there are IDs specified
- ids=getDomAttributeValue(pdom,'id','')
+ ids = getDomAttributeValue(pdom, 'id', '')
# Runtime?
- runtime=domAttributeIsTrue(pdom,'runtime')
+ runtime = domAttributeIsTrue(pdom, 'runtime')
if workspace.hasProject(projectName):
-
+
# A Property
- noclasspath=not hasDomAttribute(pdom,'classpath')
-
+ noclasspath = not hasDomAttribute(pdom, 'classpath')
+
# Add a dependency (to bring property)
- dependency=ProjectDependency(project, \
- workspace.getProject(projectName), \
- INHERIT_NONE, \
+ dependency = ProjectDependency(project, \
+ workspace.getProject(projectName), \
+ INHERIT_NONE, \
runtime,
- False, \
+ False, \
ids,
noclasspath,
'Property Dependency for ' + name)
-
-
+
+
# Add depend to project...
# :TODO: Convert to ModelObject
project.addDependency(dependency)
else:
- project.addError('No such project [' + projectName + '] for property.')
-
- def complete(self,project,workspace):
+ project.addError('No such project [' + projectName \
+ + '] for property.')
+
+ def complete(self, _project, workspace):
"""
Complete the model from XML
"""
- if self.isComplete(): return
-
+ if self.isComplete():
+ return
+
# Import the properties..
- PropertyContainer.importProperties(self,self.dom)
-
- # Complete them all
+ PropertyContainer.importProperties(self, self.dom)
+
+ # Complete them all
self.completeProperties(workspace)
-
+
# Set this up...
if self.hasDomAttribute('basedir'):
- self.basedir = os.path.abspath( \
- os.path.join( \
- self.project.getModule().getWorkingDirectory() or dir.base, \
- self.getDomAttributeValue('basedir')))
+ self.basedir = os.path.abspath(os.path.join(
+ self.project.getModule().getWorkingDirectory() or dir.base,
+ self.getDomAttributeValue('basedir')
+ ))
else:
- self.basedir=self.project.getBaseDirectory()
+ self.basedir = self.project.getBaseDirectory()
# Check for debugging properties
self.setDebug(self.domAttributeIsTrue('debug'))
self.setVerbose(self.domAttributeIsTrue('verbose'))
-
+
self.setComplete(True)
-
- def dump(self, indent=0, output=sys.stdout):
+
+ def dump(self, indent = 0, output = sys.stdout):
""" Display the contents of this object """
- i=getIndent(indent)
- output.write(i+self.__class__.__name__+'\n')
- ModelObject.dump(self,indent+1,output)
+ i = getIndent(indent)
+ output.write(i + self.__class__.__name__ + '\n')
+ ModelObject.dump(self, indent + 1, output)
# Dump all properties...
- PropertyContainer.dump(self,indent+1,output)
+ PropertyContainer.dump(self, indent + 1, output)
def getBaseDirectory(self):
- return self.basedir
-
+ return self.basedir
+
# represents an <ant/> element
class BaseAnt(Builder):
""" An Ant command (within a project)"""
- def __init__(self,dom,project):
- Builder.__init__(self,dom,project)
-
+ def __init__(self, dom, project):
+ Builder.__init__(self, dom, project)
+
# Import the target
- self.target=self.getDomAttributeValue('target') # :TODO: Soon add ... ,'gump')
+ self.target = self.getDomAttributeValue('target')
# Import the buildfile
- self.buildfile=self.getDomAttributeValue('buildfile') # :TODO: Soon add ... ,'build.xml')
-
+ self.buildfile = self.getDomAttributeValue('buildfile')
+
def hasTarget(self):
- if self.target: return True
+ if self.target:
+ return True
return False
-
+
def getTarget(self):
return self.target
-
+
def hasBuildFile(self):
- if self.buildfile: return True
+ if self.buildfile:
+ return True
return False
-
+
def getBuildFile(self):
return self.buildfile
-
- def dump(self, indent=0, output=sys.stdout):
+
+ def dump(self, indent = 0, output = sys.stdout):
""" Display the contents of this object """
- Builder.dump(self,indent,output)
- i=getIndent(indent+1)
+ Builder.dump(self, indent, output)
+ i = getIndent(indent+1)
if self.hasTarget():
output.write(i+'Target: ' + self.getTarget() + '\n')
if self.hasBuildFile():
@@ -254,69 +263,77 @@ class BaseAnt(Builder):
class Ant(BaseAnt):
""" An Ant command (within a project) """
pass
-
+
# represents a <nant/> element
class NAnt(BaseAnt):
""" A NAnt command (within a project) """
pass
-
+
# represents an <maven/> element
class Maven(Builder):
""" A Maven command (within a project)"""
- def __init__(self,dom,project):
- Builder.__init__(self,dom,project)
-
+ def __init__(self, dom, project):
+ Builder.__init__(self, dom, project)
+
# Import the goal
- self.goal=self.getDomAttributeValue('goal','jar')
-
+ self.goal = self.getDomAttributeValue('goal', 'jar')
+
def getGoal(self):
return self.goal
-
- def dump(self, indent=0, output=sys.stdout):
+
+ def dump(self, indent = 0, output = sys.stdout):
""" Display the contents of this object """
- Builder.dump(self,indent,output)
- i=getIndent(indent+1)
- output.write(i+'Goal: ' + self.getGoal() + '\n')
+ Builder.dump(self, indent, output)
+ i = getIndent(indent + 1)
+ output.write(i + 'Goal: ' + self.getGoal() + '\n')
# represents an <mvn/> element
class Maven2(Builder):
""" A Maven command (within a project)"""
- def __init__(self,dom,project):
- Builder.__init__(self,dom,project)
-
+ def __init__(self, dom, project):
+ Builder.__init__(self, dom, project)
+
# Import the goal
- self.goal=self.getDomAttributeValue('goal','package')
+ self.goal = self.getDomAttributeValue('goal', 'package')
+
+ self.local_repo = self.getDomAttributeValue('separateLocalRepository',
+ 'False')
- self.separateLocalRepo = self.domAttributeIsTrue('separateLocalRepository')
-
def getGoal(self):
return self.goal
-
- def dump(self, indent=0, output=sys.stdout):
+
+ def dump(self, indent = 0, output = sys.stdout):
""" Display the contents of this object """
- Builder.dump(self,indent,output)
- i=getIndent(indent+1)
- output.write(i+'Goal: ' + self.getGoal() + '\n')
+ Builder.dump(self, indent, output)
+ i = getIndent(indent + 1)
+ output.write(i + 'Goal: ' + self.getGoal() + '\n')
def needsSeparateLocalRepository(self):
- """ Whether a separate local repository should be used for this build """
- return self.separateLocalRepo
+ """ Whether a separate local repository will be used for this build """
+ return self.local_repo and self.local_repo not in ['False', 'false']
+
+ def getLocalRepositoryName(self):
+ """ Name of the local repository if one has been given """
+ if not self.needsSeparateLocalRepository() \
+ or self.local_repo in ['True', 'true']:
+ return None
+ return self.local_repo
# represents an <configure/> element
class Configure(Builder):
""" A configure command (within a project)"""
- def __init__(self,dom,project):
- Builder.__init__(self,dom,project)
+ def __init__(self, dom, project):
+ Builder.__init__(self, dom, project)
- def expandDomProperties(self,project,workspace):
+ def expandDomProperties(self, project, workspace):
#
# convert Ant property elements which reference a project
# into dependencies
#
for pdom in self.getDomChildIterator('arg'):
- self.expandDomProperty(pdom,project,workspace)
+ self.expandDomProperty(pdom, project, workspace)
self.importProperty(pdom)
# represents a <make/> element
@@ -324,36 +341,38 @@ class Configure(Builder):
class Make(Configure):
""" A make command (within a project) """
- def __init__(self,dom,project):
- Configure.__init__(self,dom,project)
+ def __init__(self, dom, project):
+ Configure.__init__(self, dom, project)
# Import the target
- self.target=self.getDomAttributeValue('target')
+ self.target = self.getDomAttributeValue('target')
# Import the makefile
- self.makefile=self.getDomAttributeValue('makefile')
-
+ self.makefile = self.getDomAttributeValue('makefile')
+
def hasTarget(self):
- if self.target: return True
+ if self.target:
+ return True
return False
-
+
def getTarget(self):
return self.target
-
+
def hasMakeFile(self):
- if selfmakefile: return True
+ if self.makefile:
+ return True
return False
-
+
def getMakeFile(self):
return self.makefile
# represents an <script/> element
class Script(Configure):
""" A script command (within a project)"""
- def __init__(self,dom,project):
- Configure.__init__(self,dom,project)
-
- # Get the name
- self.name=self.getDomAttributeValue('name','unset')
-
+ def __init__(self, dom, project):
+ Configure.__init__(self, dom, project)
+
+ # Get the name
+ self.name = self.getDomAttributeValue('name', 'unset')
+
def getName(self):
return self.name