history tagının yerini değiştirirken merenle yazmıştık bunu.
herhangi bi geçerliliğinin kaldığını sanmıyorum.
This commit is contained in:
@@ -1,84 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
import codecs
|
|
||||||
import xml.dom.minidom as mdom
|
|
||||||
|
|
||||||
def find_pspecs(folder):
|
|
||||||
paks = []
|
|
||||||
for root, dirs, files in os.walk(folder):
|
|
||||||
if "pspec.xml" in files:
|
|
||||||
paks.append(root)
|
|
||||||
# dont walk into the versioned stuff
|
|
||||||
if ".svn" in dirs:
|
|
||||||
dirs.remove(".svn")
|
|
||||||
return paks
|
|
||||||
|
|
||||||
def addText(doc, parent, text):
|
|
||||||
cdata =doc.createTextNode(text)
|
|
||||||
parent.appendChild(cdata)
|
|
||||||
|
|
||||||
def getTags(parent, childName):
|
|
||||||
return [x for x in parent.childNodes if x.nodeType == x.ELEMENT_NODE if x.tagName == childName]
|
|
||||||
|
|
||||||
def getNodeText(node, tag, default=None):
|
|
||||||
try:
|
|
||||||
c = getTags(node, tag)[0].firstChild.data
|
|
||||||
except:
|
|
||||||
c = default
|
|
||||||
return c
|
|
||||||
|
|
||||||
def newNode(doc, tag, text):
|
|
||||||
node = doc.createElement(tag)
|
|
||||||
cdata = doc.createTextNode(text)
|
|
||||||
node.appendChild(cdata)
|
|
||||||
return node
|
|
||||||
|
|
||||||
def fixIndent(doc, node):
|
|
||||||
for x in node.childNodes:
|
|
||||||
if x.nodeType == x.ELEMENT_NODE:
|
|
||||||
if x.tagName == "Update":
|
|
||||||
fixIndent(doc, x)
|
|
||||||
else:
|
|
||||||
x.data = "\n" + x.data[5:]
|
|
||||||
|
|
||||||
def fixTags(doc, hist):
|
|
||||||
for update in hist.childNodes:
|
|
||||||
if update.nodeType == update.ELEMENT_NODE:
|
|
||||||
rno = getNodeText(update, "Release")
|
|
||||||
update.setAttribute("release", rno)
|
|
||||||
if rno == "1":
|
|
||||||
comment = newNode(doc, "Comment", "First release.")
|
|
||||||
paker = getTags(getTags(doc.documentElement, "Source")[0], "Packager")[0]
|
|
||||||
name = newNode(doc, "Name", getNodeText(paker, "Name"))
|
|
||||||
email = newNode(doc, "Email", getNodeText(paker, "Email"))
|
|
||||||
else:
|
|
||||||
comment = newNode(doc, "Comment", "FIXHISTORY")
|
|
||||||
name = newNode(doc, "Name", "FIXHISTORY")
|
|
||||||
email = newNode(doc, "Email", "FIXHISTORY")
|
|
||||||
update.replaceChild(comment, getTags(update, "Release")[0])
|
|
||||||
addText(doc, update, " ")
|
|
||||||
update.appendChild(name)
|
|
||||||
addText(doc, update, "\n ")
|
|
||||||
update.appendChild(email)
|
|
||||||
addText(doc, update, "\n ")
|
|
||||||
|
|
||||||
def fixPspec(path):
|
|
||||||
doc = mdom.parse(path)
|
|
||||||
pisi = doc.documentElement
|
|
||||||
source = getTags(pisi, "Source")[0]
|
|
||||||
history = getTags(source, "History")[0]
|
|
||||||
item = source.removeChild(history)
|
|
||||||
addText(doc, pisi, "\n ")
|
|
||||||
fixIndent(doc, item)
|
|
||||||
fixTags(doc, item)
|
|
||||||
pisi.appendChild(item)
|
|
||||||
addText(doc, pisi, "\n")
|
|
||||||
f = codecs.open(path,'w', "utf-8")
|
|
||||||
f.write(doc.toxml())
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
pakages = find_pspecs(sys.argv[1])
|
|
||||||
for pak in pakages:
|
|
||||||
fixPspec(os.path.join(pak, "pspec.xml"))
|
|
||||||
Reference in New Issue
Block a user