more and more..
This commit is contained in:
@@ -25,6 +25,22 @@ def getBuildDependencies(pspec):
|
|||||||
except:
|
except:
|
||||||
return ['']
|
return ['']
|
||||||
|
|
||||||
|
def getRuntimeDependencies(pspec):
|
||||||
|
rdeps = []
|
||||||
|
dom = mdom.parse(pspec)
|
||||||
|
try:
|
||||||
|
for p in Get(dom.documentElement, "Package"):
|
||||||
|
rdeps += [bdep.firstChild.wholeText for bdep in Get(Get(p, "RuntimeDependencies")[0], 'Dependency')]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
#remove duplicated entries..
|
||||||
|
for d in rdeps:
|
||||||
|
for i in range(0, rdeps.count(d)-1):
|
||||||
|
rdeps.remove(d)
|
||||||
|
|
||||||
|
return rdeps
|
||||||
|
|
||||||
def getPackageNames(pspec):
|
def getPackageNames(pspec):
|
||||||
packages = []
|
packages = []
|
||||||
dom = mdom.parse(pspec)
|
dom = mdom.parse(pspec)
|
||||||
@@ -45,7 +61,7 @@ def buildDepResolver(pspeclist):
|
|||||||
clean = True
|
clean = True
|
||||||
for i in range(0, pspeccount):
|
for i in range(0, pspeccount):
|
||||||
pspec = pspeclist[i]
|
pspec = pspeclist[i]
|
||||||
for p in depmap.get(pspec):
|
for p in bdepmap.get(pspec):
|
||||||
for j in range(i+1, pspeccount):
|
for j in range(i+1, pspeccount):
|
||||||
if p in namemap.get(pspeclist[j]):
|
if p in namemap.get(pspeclist[j]):
|
||||||
pspeclist.insert(j+1, pspeclist.pop(i))
|
pspeclist.insert(j+1, pspeclist.pop(i))
|
||||||
@@ -55,14 +71,15 @@ def buildDepResolver(pspeclist):
|
|||||||
else:
|
else:
|
||||||
return pspeclist
|
return pspeclist
|
||||||
|
|
||||||
|
|
||||||
pspeclist = findPspecs()
|
pspeclist = findPspecs()
|
||||||
|
|
||||||
depmap, namemap, pspeccount = {}, {}, len(pspeclist)
|
bdepmap, rdepmap, namemap, pspeccount = {}, {}, {}, len(pspeclist)
|
||||||
for pspec in pspeclist: depmap[pspec] = getBuildDependencies(pspec)
|
|
||||||
for pspec in pspeclist: namemap[pspec] = getPackageNames(pspec)
|
|
||||||
|
|
||||||
|
for pspec in pspeclist: bdepmap[pspec] = getBuildDependencies(pspec)
|
||||||
|
for pspec in pspeclist: rdepmap[pspec] = getRuntimeDependencies(pspec)
|
||||||
|
for pspec in pspeclist: namemap[pspec] = getPackageNames(pspec)
|
||||||
|
|
||||||
while not buildDepResolver(pspeclist): pass
|
while not buildDepResolver(pspeclist): pass
|
||||||
|
|
||||||
|
|
||||||
print pspeclist
|
print pspeclist
|
||||||
|
|||||||
Reference in New Issue
Block a user