Exemplo n.º 1
0
def load(preferencesPath):
	prefXML= bDOM.link(preferencesPath)
	value= {
		'exports': bDOM.extractTagTextByPath(prefXML, "exports"),
		'dependencies': bDOM.extractTagTextByPath(prefXML, "dependencies"),
		'scratch': bDOM.extractTagTextByPath(prefXML, "scratch"),
		'domain': bDOM.extractTagTextByPath(prefXML, "domain"),
		'author': bDOM.extractTagTextByPath(prefXML, "author"),
		'email': bDOM.extractTagTextByPath(prefXML, "email"),
		'company': bDOM.extractTagTextByPath(prefXML, "company"),
		'untitled': bDOM.extractTagTextByPath(prefXML, "untitled"),
		'base_url': bDOM.extractTagTextByPath(prefXML, "base_url"),
	}
	keyText= bDOM.extractTagTextByPath(prefXML, "key")
	if keyText:
		value['key']= bRSA.Key(keyText)
	else:
		value['key']= bRSA.Key(-512) # large enough to hash a sha512
		bDOM.appendText(prefXML.documentElement, "\t")
		element= bDOM.appendElement(prefXML.documentElement, "key")
		bDOM.appendText(element, str(value['key']))
		bDOM.appendText(prefXML.documentElement, "\n")
		prefFile= open(preferencesPath, 'w')
		prefXML.writexml(prefFile)
		prefFile.close()
	prefXML.unlink()
	return value
Exemplo n.º 2
0
def load(preferencesPath):
    prefXML = bDOM.link(preferencesPath)
    value = {
        'exports': bDOM.extractTagTextByPath(prefXML, "exports"),
        'dependencies': bDOM.extractTagTextByPath(prefXML, "dependencies"),
        'scratch': bDOM.extractTagTextByPath(prefXML, "scratch"),
        'domain': bDOM.extractTagTextByPath(prefXML, "domain"),
        'author': bDOM.extractTagTextByPath(prefXML, "author"),
        'email': bDOM.extractTagTextByPath(prefXML, "email"),
        'company': bDOM.extractTagTextByPath(prefXML, "company"),
        'untitled': bDOM.extractTagTextByPath(prefXML, "untitled"),
        'base_url': bDOM.extractTagTextByPath(prefXML, "base_url"),
    }
    keyText = bDOM.extractTagTextByPath(prefXML, "key")
    if keyText:
        value['key'] = bRSA.Key(keyText)
    else:
        value['key'] = bRSA.Key(-512)  # large enough to hash a sha512
        bDOM.appendText(prefXML.documentElement, "\t")
        element = bDOM.appendElement(prefXML.documentElement, "key")
        bDOM.appendText(element, str(value['key']))
        bDOM.appendText(prefXML.documentElement, "\n")
        prefFile = open(preferencesPath, 'w')
        prefXML.writexml(prefFile)
        prefFile.close()
    prefXML.unlink()
    return value
Exemplo n.º 3
0
	def bumpVersion(self, bumpPhase= False):
		packageXML= bDOM.link(self.__path)
		version= bDOM.extractTagTextByPath(packageXML, 'version')
		if version != self.__contents['version']:
			print "WARNING: package version changed from ",self.__contents['version']," to ",version
		#print "version",version
		parts= bConstants.kVersionPattern.match(version)
		newVersion= parts.group(1)+"."+parts.group(2)+"."
		#print "newVersion",newVersion
		patchNumber= int(parts.group(3))
		#print "patchNumber",patchNumber
		phase= parts.group(4)
		#print "phase",phase
		buildNumber= int(parts.group(5))
		#print "buildNumber",buildNumber
		if bumpPhase and phase == bConstants.kBuildPhaseOrder[-1]:
			patchNumber+= 1
			phase= bConstants.kBuildPhaseOrder[0]
			buildNumber= 0
		elif bumpPhase and bConstants.kBuildPhaseOrder.find(phase) >= 0:
			phase= bConstants.kBuildPhaseOrder[bConstants.kBuildPhaseOrder.find(phase) + 1]
			buildNumber= 0
		else:
			buildNumber+= 1
		newVersion+= str(patchNumber)+phase+str(buildNumber)
		#print "newVersion",newVersion
		bDOM.setTagContentsByPath(packageXML, 'version', newVersion)
		#print "Updating ",self.__path
		packageFile= open(self.__path, 'w')
		packageXML.writexml(packageFile)
		packageFile.close()
		packageXML.unlink()
		self.__contents['version']= newVersion
Exemplo n.º 4
0
 def bumpVersion(self, bumpPhase=False):
     packageXML = bDOM.link(self.__path)
     version = bDOM.extractTagTextByPath(packageXML, 'version')
     if version != self.__contents['version']:
         print "WARNING: package version changed from ", self.__contents[
             'version'], " to ", version
     #print "version",version
     parts = bConstants.kVersionPattern.match(version)
     newVersion = parts.group(1) + "." + parts.group(2) + "."
     #print "newVersion",newVersion
     patchNumber = int(parts.group(3))
     #print "patchNumber",patchNumber
     phase = parts.group(4)
     #print "phase",phase
     buildNumber = int(parts.group(5))
     #print "buildNumber",buildNumber
     if bumpPhase and phase == bConstants.kBuildPhaseOrder[-1]:
         patchNumber += 1
         phase = bConstants.kBuildPhaseOrder[0]
         buildNumber = 0
     elif bumpPhase and bConstants.kBuildPhaseOrder.find(phase) >= 0:
         phase = bConstants.kBuildPhaseOrder[
             bConstants.kBuildPhaseOrder.find(phase) + 1]
         buildNumber = 0
     else:
         buildNumber += 1
     newVersion += str(patchNumber) + phase + str(buildNumber)
     #print "newVersion",newVersion
     bDOM.setTagContentsByPath(packageXML, 'version', newVersion)
     #print "Updating ",self.__path
     packageFile = open(self.__path, 'w')
     packageXML.writexml(packageFile)
     packageFile.close()
     packageXML.unlink()
     self.__contents['version'] = newVersion
Exemplo n.º 5
0
def getSignatures(signatureFile):
	dom= bDOM.link(signatureFile)
	key= dom.documentElement.getAttribute('key')
	signatures= []
	for signature in dom.documentElement.getElementsByTagName('signed'):
		algorithm= signature.getAttribute('algorithm')
		value= bDOM.extractTextFromTagContents(signature)
		isText= signature.hasAttribute('text') and signature.getAttribute('text')[0].lower() == 't'
		signatures.append( (algorithm, value, isText) )
	dom.unlink()
	return (key, signatures)
Exemplo n.º 6
0
	def upgrade(self, dependency, upgraded):
		#print "Upgrading from ",dependency,"to",upgraded
		packageXML= bDOM.link(self.__path)
		dependencyList= bDOM.findTagByPath(packageXML, "dependencies")
		if dependencyList:
			for dep in dependencyList.getElementsByTagName("dependency"):
				location= bDOM.extractTextFromTagContents(dep)
				depID= bID.ID(location)
				if depID.equals(dependency):
					bDOM.changeTagContents(packageXML, dep, upgraded.filename())
					break
		packageFile= open(self.__path, 'w')
		packageXML.writexml(packageFile)
		packageFile.close()
		packageXML.unlink()
Exemplo n.º 7
0
 def upgrade(self, dependency, upgraded):
     #print "Upgrading from ",dependency,"to",upgraded
     packageXML = bDOM.link(self.__path)
     dependencyList = bDOM.findTagByPath(packageXML, "dependencies")
     if dependencyList:
         for dep in dependencyList.getElementsByTagName("dependency"):
             location = bDOM.extractTextFromTagContents(dep)
             depID = bID.ID(location)
             if depID.equals(dependency):
                 bDOM.changeTagContents(packageXML, dep,
                                        upgraded.filename())
                 break
     packageFile = open(self.__path, 'w')
     packageXML.writexml(packageFile)
     packageFile.close()
     packageXML.unlink()
Exemplo n.º 8
0
 def __init__(self, contents):
     self.__path = None
     if os.path.isfile(contents):
         self.__path = contents
     packageXML = bDOM.link(contents)
     self.__contents = {
         'name': bDOM.extractTagTextByPath(packageXML, "name"),
         'domain': bDOM.extractTagTextByPath(packageXML, "domain"),
         'author': bDOM.extractTagTextByPath(packageXML, "author"),
         'email': bDOM.extractTagTextByPath(packageXML, "email"),
         'version': bDOM.extractTagTextByPath(packageXML, "version"),
         'company': bDOM.extractTagTextByPath(packageXML, "company"),
         'changes': bDOM.extractTagTextByPath(packageXML, "changes"),
         'todo': bDOM.extractTagTextByPath(packageXML, "todo"),
         'changepat': bDOM.extractTagTextByPath(packageXML, "changepat"),
         'filterExtensions': [],
         'filterPaths': [],
         'filterNames': [],
         'errors': [],
         'warnings': [],
         'dependencies': [],
         'previous': [],
     }
     parseXMLListOfExports(packageXML, "dependencies", "dependency",
                           self.__contents['dependencies'],
                           self.__contents['warnings'])
     parseXMLListOfExports(packageXML, "previous", "version",
                           self.__contents['previous'],
                           self.__contents['warnings'])
     if self.__contents['domain'] and self.__contents['name']:
         self.__contents['full_name'] = self.__contents[
             'domain'] + "_" + self.__contents['name']
     else:
         self.__contents['full_name'] = None
     for filter in packageXML.getElementsByTagName('filter'):
         ext = filter.getAttribute('extension')
         if ext:
             self.__contents['filterExtensions'].append(ext)
         path = filter.getAttribute('path')
         if path:
             self.__contents['filterPaths'].append(path)
         name = filter.getAttribute('name')
         if name:
             self.__contents['filterNames'].append(name)
     packageXML.unlink()
Exemplo n.º 9
0
	def addPrevious(self, identifier):
		packageXML= bDOM.link(self.__path)
		previousList= bDOM.findTagByPath(packageXML, "previous")
		if not previousList:
			previousList= packageXML.createElement('previous')
			previousList.appendChild(packageXML.createTextNode("\n\t"))
			packageXML.documentElement.appendChild(packageXML.createTextNode("\t"))
			packageXML.documentElement.appendChild(previousList)
			packageXML.documentElement.appendChild(packageXML.createTextNode("\n"))
		nextVersion= packageXML.createElement('version')
		versionText= packageXML.createTextNode(identifier.filename())
		nextVersion.appendChild(versionText)
		previousList.appendChild(packageXML.createTextNode("\t"))
		previousList.appendChild(nextVersion)
		previousList.appendChild(packageXML.createTextNode("\n\t"))
		packageFile= open(self.__path, 'w')
		packageXML.writexml(packageFile)
		packageFile.close()
		packageXML.unlink()
Exemplo n.º 10
0
 def addPrevious(self, identifier):
     packageXML = bDOM.link(self.__path)
     previousList = bDOM.findTagByPath(packageXML, "previous")
     if not previousList:
         previousList = packageXML.createElement('previous')
         previousList.appendChild(packageXML.createTextNode("\n\t"))
         packageXML.documentElement.appendChild(
             packageXML.createTextNode("\t"))
         packageXML.documentElement.appendChild(previousList)
         packageXML.documentElement.appendChild(
             packageXML.createTextNode("\n"))
     nextVersion = packageXML.createElement('version')
     versionText = packageXML.createTextNode(identifier.filename())
     nextVersion.appendChild(versionText)
     previousList.appendChild(packageXML.createTextNode("\t"))
     previousList.appendChild(nextVersion)
     previousList.appendChild(packageXML.createTextNode("\n\t"))
     packageFile = open(self.__path, 'w')
     packageXML.writexml(packageFile)
     packageFile.close()
     packageXML.unlink()
Exemplo n.º 11
0
	def __init__(self, contents):
		self.__path= None
		if os.path.isfile(contents):
			self.__path= contents
		packageXML= bDOM.link(contents)
		self.__contents= {
			'name': bDOM.extractTagTextByPath(packageXML, "name"),
			'domain': bDOM.extractTagTextByPath(packageXML, "domain"),
			'author': bDOM.extractTagTextByPath(packageXML, "author"),
			'email': bDOM.extractTagTextByPath(packageXML, "email"),
			'version': bDOM.extractTagTextByPath(packageXML, "version"),
			'company': bDOM.extractTagTextByPath(packageXML, "company"),
			'changes': bDOM.extractTagTextByPath(packageXML, "changes"),
			'todo': bDOM.extractTagTextByPath(packageXML, "todo"),
			'changepat': bDOM.extractTagTextByPath(packageXML, "changepat"),
			'filterExtensions': [],
			'filterPaths': [],
			'filterNames': [],
			'errors': [],
			'warnings': [],
			'dependencies': [],
			'previous': [],
		}
		parseXMLListOfExports(packageXML, "dependencies", "dependency", self.__contents['dependencies'], self.__contents['warnings'])
		parseXMLListOfExports(packageXML, "previous", "version", self.__contents['previous'], self.__contents['warnings'])
		if self.__contents['domain'] and self.__contents['name']:
			self.__contents['full_name']= self.__contents['domain']+"_"+self.__contents['name']
		else:
			self.__contents['full_name']= None
		for filter in packageXML.getElementsByTagName('filter'):
			ext= filter.getAttribute('extension')
			if ext:
				self.__contents['filterExtensions'].append(ext)
			path= filter.getAttribute('path')
			if path:
				self.__contents['filterPaths'].append(path)
			name= filter.getAttribute('name')
			if name:
				self.__contents['filterNames'].append(name)
		packageXML.unlink()