ajack 2004/03/07 14:22:36
Modified: python/gump/model project.py object.py
python/gump/document forrest.py
python/gump/utils tools.py file.py
python/gump engine.py
Log:
Minor tweaks...
Revision Changes Path
1.61 +15 -11 gump/python/gump/model/project.py
Index: project.py
===================================================================
RCS file: /home/cvs/gump/python/gump/model/project.py,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- project.py 5 Mar 2004 23:42:22 -0000 1.60
+++ project.py 7 Mar 2004 22:22:35 -0000 1.61
@@ -283,7 +283,7 @@
return self.getModule().getMetadataViewUrl()
def getViewUrl(self):
- # :TODO: if a basedir the offset?
+ # :TODO: if a basedir then offset?
return self.getModule().getViewUrl()
def addJar(self,jar):
@@ -855,8 +855,10 @@
#
# Allow ant-level debugging...
#
- if debug: cmd.addParameter('-debug')
- if verbose: cmd.addParameter('-verbose')
+ if self.getWorkspace().isDebug() or self.isDebug() or debug:
+ cmd.addParameter('-debug')
+ if self.getWorkspace().isVerbose() or self.isVerbose() or verbose:
+ cmd.addParameter('-verbose')
#
# This sets the *defaults*, a workspace could override them.
@@ -934,8 +936,10 @@
#
# Allow maven-level debugging...
#
- if debug: cmd.addParameter('--debug')
- if verbose: cmd.addParameter('--exception')
+ if self.getWorkspace().isDebug() or self.isDebug() or debug:
+ cmd.addParameter('--debug')
+ if self.getWorkspace().isVerbose() or self.isVerbose() or verbose:
+ cmd.addParameter('--exception')
#
# Suppress downloads
@@ -994,11 +998,11 @@
cmd.addPrefixedParameter('-X','bootclasspath/p',bootclasspath,':')
#
- # Allow ant-level debugging...
+ # Allow script-level debugging...
#
- if self.getWorkspace().isDebug() or debug:
+ if self.getWorkspace().isDebug() or self.isDebug() or debug:
cmd.addParameter('-debug')
- if self.getWorkspace().isVerbose() or verbose:
+ if self.getWorkspace().isVerbose() or self.isVerbose() or verbose:
cmd.addParameter('-verbose')
return cmd
1.20 +14 -5 gump/python/gump/model/object.py
Index: object.py
===================================================================
RCS file: /home/cvs/gump/python/gump/model/object.py,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- object.py 1 Mar 2004 18:58:00 -0000 1.19
+++ object.py 7 Mar 2004 22:22:35 -0000 1.20
@@ -168,6 +168,9 @@
# The XML model
self.xml=xml
+ self.debug=None
+ self.verbose=None
+
self.completionPerformed=0
def isComplete(self):
@@ -176,11 +179,17 @@
def setComplete(self,complete):
self.completionPerformed=complete
+ def setDebug(self,debug):
+ self.debug=debug
+
def isDebug(self):
- return self.xml.debug
+ return self.debug or self.xml.debug
+ def setVerbose(self,verbose):
+ self.verbose=verbose
+
def isVerbose(self):
- return self.xml.verbose
+ return self.verbose or self.xml.verbose
def dump(self, indent=0, output=sys.stdout):
""" Display the contents of this object """
1.93 +8 -5 gump/python/gump/document/forrest.py
Index: forrest.py
===================================================================
RCS file: /home/cvs/gump/python/gump/document/forrest.py,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -r1.92 -r1.93
--- forrest.py 5 Mar 2004 23:42:22 -0000 1.92
+++ forrest.py 7 Mar 2004 22:22:35 -0000 1.93
@@ -504,7 +504,8 @@
projectsSection=document.createSection('Projects with issues...')
projectsTable=projectsSection.createTable(['Name','Affected', \
- 'Duration\nin state','Project State','Elapsed'])
+ 'Dependencies', \
+ 'Duration\nin state','Project State'])
pcount=0
for project in sortedProjectList:
if not gumpSet.inSequence(project): continue
@@ -531,10 +532,12 @@
self.insertLink(project,workspace,projectRow.createData())
projectRow.createData(affected)
+
+ projectRow.createData( project.getFullDependencyCount())
+
projectRow.createData(seq)
self.insertStateIcon(project,workspace,projectRow.createData())
- projectRow.createData(secsToElapsedString(project.getElapsedSecs()))
if not pcount:
projectsTable.createLine('None')
1.15 +30 -19 gump/python/gump/utils/tools.py
Index: tools.py
===================================================================
RCS file: /home/cvs/gump/python/gump/utils/tools.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- tools.py 1 Mar 2004 18:58:00 -0000 1.14
+++ tools.py 7 Mar 2004 22:22:35 -0000 1.15
@@ -66,6 +66,7 @@
import types, StringIO
from gump import log
+from gump.utils.note import *
from gump.utils.work import *
from gump.utils.file import *
from gump.utils.launcher import *
@@ -89,8 +90,14 @@
return ok
def catDirectoryContentsAsWork(workable,directory,name=None):
+
+ # Chances are a workable is also annotatable...
+ annotatable=None
+ if isinstance(workable,Annotatable):
+ annotatable=workable
+
try:
- if os.path.exists(directory) and os.path.isdir(directory):
+ if os.path.exists(directory) and os.path.isdir(directory):
for fileName in os.listdir(directory):
baseName=name
file=os.path.abspath(os.path.join(directory,fileName))
@@ -100,12 +107,11 @@
else:
workName=fileName
catFileAsWork(workable, file, workName)
+ elif annotatable:
+ annotatable.addWarning('No directory [' + str(directory) + ']')
except:
- try:
- workable.addWarning('No such directory [' + str(directory) + ']')
- except:
- pass
-
+ if annotatable:
+ annotatable.addWarning('Failed to display directory contents [' +
str(directory) + ']')
def catFileAsWork(workable,file,name=None):
ok=0
@@ -142,6 +148,12 @@
return reference.exists() and reference.isDirectory()
def
catDirectoryContentsToFileHolder(holder,directory,type=FILE_TYPE_MISC,name=None):
+
+ # Chances are a holder is also annotatable...
+ annotatable=None
+ if isinstance(holder,Annotatable):
+ annotatable=holder
+
try:
listDirectoryToFileHolder(holder,directory,type,name)
@@ -149,17 +161,16 @@
for fileName in os.listdir(directory):
baseName=name
file=os.path.abspath(os.path.join(directory,fileName))
- if os.path.exists(file) and os.path.isfile(file):
- if baseName:
- workName=baseName+'_'+fileName
- else:
- workName=fileName
- catFileToFileHolder(holder, file, type, workName)
+ if baseName:
+ workName=baseName+'_'+fileName
+ else:
+ workName=fileName
+ catFileToFileHolder(holder, file, type, workName)
+ elif annotatable:
+ annotatable.addWarning('No directory [' + str(directory) + ']')
except:
- try:
- holder.addWarning('No such directory [' + str(directory) + ']')
- except:
- pass
+ if annotatable:
+ annotatable.addError('Failed to display directory [' + str(directory) +
']')
def catFileToFileHolder(holder,file,type=FILE_TYPE_MISC,name=None):
1.5 +7 -5 gump/python/gump/utils/file.py
Index: file.py
===================================================================
RCS file: /home/cvs/gump/python/gump/utils/file.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- file.py 4 Mar 2004 17:26:09 -0000 1.4
+++ file.py 7 Mar 2004 22:22:35 -0000 1.5
@@ -72,14 +72,16 @@
FILE_TYPE_MISC=1
FILE_TYPE_CONFIG=2
-FILE_TYPE_PACKAGE=3
-FILE_TYPE_OUTPUT=4
-FILE_TYPE_REPORT=5
-FILE_TYPE_REPO=6
-FILE_TYPE_LOG=7
+FILE_TYPE_SOURCE=3
+FILE_TYPE_PACKAGE=4
+FILE_TYPE_OUTPUT=5
+FILE_TYPE_REPORT=6
+FILE_TYPE_REPO=7
+FILE_TYPE_LOG=8
fileTypeDescriptions = { FILE_TYPE_MISC : "Miscellaneous",
FILE_TYPE_CONFIG : "Config",
+ FILE_TYPE_PACKAGE : "Source",
FILE_TYPE_PACKAGE : "Package",
FILE_TYPE_OUTPUT : "Output",
FILE_TYPE_REPORT : "Report",
1.74 +77 -10 gump/python/gump/engine.py
Index: engine.py
===================================================================
RCS file: /home/cvs/gump/python/gump/engine.py,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -r1.73 -r1.74
--- engine.py 4 Mar 2004 17:26:10 -0000 1.73
+++ engine.py 7 Mar 2004 22:22:35 -0000 1.74
@@ -419,15 +419,30 @@
log.debug(' ------ Project: #[' + `projectNo` + '] of [' +
`projectCount` + '] : ' + project.getName())
- if project.isPackaged(): continue
+ if project.isPackaged():
+ self.performPackageProcessing( run, project, stats)
+ continue
+ # Extract stats (in case we want to do conditional processing)
+ stats=project.getStats()
+
# Do this even if not ok
- self.performPreBuild( run, project )
+ self.performPreBuild( run, project, stats )
wasBuilt=0
if project.okToPerformWork():
log.debug(' ------ Building: [' + `projectNo` + '] ' +
project.getName())
+ # Turn on --verbose or --debug if failing ...
+ if not STATE_SUCCESS == stats.currentState:
+ if stats.sequenceInState > 5:
+ project.setDebug(1)
+ else:
+ project.setVerbose(1)
+
+ #
+ # Get the appropriate build command...
+ #
cmd=project.getBuildCommand()
if cmd:
@@ -450,13 +465,12 @@
project.changeState(STATE_SUCCESS)
# Do this even if not ok
- self.performPostBuild( run, project, repository, wasBuilt )
+ self.performPostBuild( run, project, repository, wasBuilt, stats )
if project.isFailed():
log.warn('Failed to build project #[' + `projectNo` + '] [' +
project.getName() + '], state:' \
+ project.getStateDescription())
-
-
+
projectNo+=1
@@ -523,7 +537,7 @@
project.addError(' <mkdir without \'dir\' attribute.')
raise RuntimeError('Bad <mkdir, missing \'dir\' attribute')
- def performPreBuild( self, run, project ):
+ def performPreBuild( self, run, project, stats ):
""" Perform pre-build Actions """
log.debug(' ------ Performing pre-Build Actions (mkdir/delete) for : '+
project.getName())
@@ -578,8 +592,7 @@
if not project.okToPerformWork():
log.warn('Failed to perform prebuild on project [' + project.getName()
+ ']')
-
- def performPostBuild(self, run, project, repository, wasBuilt):
+ def performPostBuild(self, run, project, repository, wasBuilt, stats):
"""Perform Post-Build Actions"""
log.debug(' ------ Performing post-Build Actions (check jars) for : '+
project.getName())
@@ -596,7 +609,7 @@
jarPath=os.path.abspath(jar.getPath())
# Add to list of outputs, in case we
# fail to find, and need to go list
- # directoiries
+ # directories
outputs.append(jarPath)
if not os.path.exists(jarPath):
project.changeState(STATE_FAILED,REASON_MISSING_OUTPUTS)
@@ -674,7 +687,11 @@
project.addError("See Directory Listing Work for Missing
Outputs")
else:
project.changeState(STATE_SUCCESS)
-
+ else:
+ # List source directory (when failed) in case it helps debugging...
+
listDirectoryToFileHolder(project,project.getModule().getSourceDirectory(), \
+ FILE_TYPE_SOURCE,
'list_source_'+project.getName())
+
#
# Display report output, even if failed...
#
@@ -701,6 +718,56 @@
log.warning('Display Maven Log Failed', exc_info=1)
# Not worth crapping out over...
+
+ def performPackageProcessing(self, run, project, stats):
+ """Perform Package Processing Actions"""
+
+ log.debug(' ------ Performing Package Processing for : '+ project.getName())
+
+ if project.hasOutputs():
+ outputs = []
+
+ #
+ # Ensure the jar output were all generated correctly.
+ #
+ outputsOk=1
+ for jar in project.getJars():
+ jarPath=os.path.abspath(jar.getPath())
+ # Add to list of outputs, in case we
+ # fail to find, and need to go list
+ # directories
+ outputs.append(jarPath)
+
+ # If we have a <license name='...
+ if project.hasLicense():
+ licensePath=os.path.abspath( \
+ os.path.join(
project.getModule().getSourceDirectory(), \
+ project.getLicense() ) )
+
+ # Add to list of outputs, in case we
+ # fail to find, and need to go list
+ # directories
+ outputs.append(licensePath)
+
+ #
+ # List all directories that should've contained
+ # outputs, to see what is there.
+ #
+ dirs=[]
+ dircnt=0
+ listed=0
+ for output in outputs:
+ dir=os.path.dirname(output)
+ if not dir in dirs:
+ dircnt += 1
+ if os.path.exists(dir):
+ listDirectoryToFileHolder(project,dir,\
+ FILE_TYPE_PACKAGE,
+
'list_'+project.getName()+'_dir'+str(dircnt)+'_'+os.path.basename(dir))
+ dirs.append(dir)
+ listed += 1
+ else:
+ project.addError("No such directory (where package
output is expected) : " + dir)
"""
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]