Change to project/trunk,tags,branches style
This commit is contained in:
Executable
+61
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import xml.dom.minidom as mdom
|
||||
import codecs
|
||||
import os
|
||||
|
||||
folder = "/var/lib/pisi"
|
||||
|
||||
def saveMetadata(data, file):
|
||||
if data:
|
||||
f = codecs.open(file, 'w', "utf-8")
|
||||
f.write(data)
|
||||
f.close()
|
||||
return True
|
||||
|
||||
def getNodeText(node, tag, default=None):
|
||||
try : c = getTags(node, tag)[0].firstChild.data
|
||||
except: c = default
|
||||
return c
|
||||
|
||||
def getTags(parent, childName):
|
||||
return [x for x in parent.childNodes if x.nodeType == x.ELEMENT_NODE if x.tagName == childName]
|
||||
|
||||
def addText(dom, parent, text):
|
||||
cdata = dom.createTextNode(text)
|
||||
parent.appendChild(cdata)
|
||||
|
||||
def fixMetadata(metadata):
|
||||
dom = mdom.parse(metadata)
|
||||
pisi = dom.documentElement
|
||||
|
||||
package = getTags(pisi, "Package")[0]
|
||||
history = getTags(package, "History")[0]
|
||||
item = package.removeChild(history)
|
||||
|
||||
for update in history.childNodes:
|
||||
if update.nodeType == update.ELEMENT_NODE:
|
||||
try:
|
||||
rno = getNodeText(update, "Release")[6:-5]
|
||||
except TypeError:
|
||||
return None
|
||||
update.setAttribute("release", rno)
|
||||
release = getTags(update, "Release")[0]
|
||||
update.removeChild(release)
|
||||
|
||||
addText(dom, package, " ")
|
||||
package.appendChild(item)
|
||||
addText(dom, package, "\n ")
|
||||
return dom.toxml()
|
||||
|
||||
def findMetadata():
|
||||
for root, dirs, files in os.walk(folder):
|
||||
if "metadata.xml" in files:
|
||||
yield (root + '/metadata.xml')
|
||||
|
||||
for file in findMetadata():
|
||||
if saveMetadata(fixMetadata(file), file):
|
||||
print "Güncellendi : ", file
|
||||
else:
|
||||
print "Hiç bir şey yapılmadı: ", file
|
||||
Reference in New Issue
Block a user