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]