1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-09-06 21:28:42 +02:00

use metafile in update_package_meta

This commit is contained in:
Michal Vyskocil
2009-06-19 08:32:56 +00:00
parent a2566a0a6f
commit d764905730

View File

@@ -12,6 +12,7 @@ __version__ = '0.120'
__store_version__ = '1.0'
import os
import os.path
import sys
import urllib2
from urllib import pathname2url, quote_plus, urlencode
@@ -1125,45 +1126,31 @@ rev: %s
for the updatepacmetafromspec subcommand
"""
import tempfile
tempdir = '/tmp'
if sys.platform[:3] == 'win':
tempdir = os.getenv('TEMP')
(fd, filename) = tempfile.mkstemp(prefix = 'osc_editmeta.', suffix = '.xml', dir = tempdir)
m = ''.join(show_package_meta(self.apiurl, self.prjname, self.name))
f = os.fdopen(fd, 'w')
f.write(m)
f.close()
tree = ET.parse(filename)
tree = ET.fromstring(m)
tree.find('title').text = self.summary
tree.find('description').text = ''.join(self.descr)
url = tree.find('url')
if url == None:
url = ET.SubElement(tree.getroot(), 'url')
url = ET.SubElement(tree, 'url')
url.text = self.url
tree.write(filename)
mf = metafile(self.apiurl, ET.tostring(tree))
print '*' * 36, 'old', '*' * 36
print m
print '*' * 36, 'new', '*' * 36
tree.write(sys.stdout)
print ET.tostring(tree)
print '*' * 72
# FIXME: for testing...
# open the new description in $EDITOR instead?
repl = raw_input('Write? (y/N) ')
if repl == 'y':
print 'Sending meta data...',
u = makeurl(self.apiurl, ['source', self.prjname, self.name, '_meta'])
http_PUT(u, file=filename)
print 'Done.'
else:
print 'discarding', filename
mf.sync()
os.unlink(filename)
mf.discard()
def latest_rev(self):
if self.islinkrepair():
@@ -1801,6 +1788,12 @@ class metafile:
os.unlink(self.filename)
print 'Done.'
return True
def discard(self):
if os.path.exists(self.filename):
print 'discarding', self.filename
os.unlink(self.filename)
return self
# different types of metadata