提交 3b1a95b1 编写于 作者: M Mark Hymers

make decode_dot_dak use Changes class

Signed-off-by: NMark Hymers <mhy@debian.org>
上级 126a1c72
......@@ -28,7 +28,7 @@
import sys
import apt_pkg
from daklib import queue
from daklib.changes import Changes
from daklib import utils
################################################################################
......@@ -55,77 +55,13 @@ def main():
if Options["Help"]:
usage()
k = queue.Upload(Cnf)
for arg in sys.argv[1:]:
arg = utils.validate_changes_file_arg(arg,require_changes=-1)
k.pkg.changes_file = arg
print "%s:" % (arg)
k.init_vars()
k.update_vars()
changes = k.pkg.changes
print " Changes:"
# Mandatory changes fields
for i in [ "source", "version", "maintainer", "urgency", "changedby822",
"changedby2047", "changedbyname", "maintainer822",
"maintainer2047", "maintainername", "maintaineremail",
"fingerprint", "changes" ]:
print " %s: %s" % (i.capitalize(), changes[i])
del changes[i]
# Mandatory changes lists
for i in [ "distribution", "architecture", "closes" ]:
print " %s: %s" % (i.capitalize(), " ".join(changes[i].keys()))
del changes[i]
# Optional changes fields
for i in [ "changed-by", "filecontents", "format", "adv id" ]:
if changes.has_key(i):
print " %s: %s" % (i.capitalize(), changes[i])
del changes[i]
print
if changes:
utils.warn("changes still has following unrecognised keys: %s" % (changes.keys()))
dsc = k.pkg.dsc
print " Dsc:"
for i in [ "source", "version", "maintainer", "fingerprint", "uploaders",
"bts changelog" ]:
if dsc.has_key(i):
print " %s: %s" % (i.capitalize(), dsc[i])
del dsc[i]
print
if dsc:
utils.warn("dsc still has following unrecognised keys: %s" % (dsc.keys()))
files = k.pkg.files
print " Files:"
for f in files.keys():
print " %s:" % (f)
for i in [ "package", "version", "architecture", "type", "size",
"md5sum", "sha1sum", "sha256sum", "component", "location id",
"source package", "source version", "maintainer", "dbtype",
"files id", "new", "section", "priority", "pool name" ]:
if files[f].has_key(i):
print " %s: %s" % (i.capitalize(), files[f][i])
del files[f][i]
if files[f]:
utils.warn("files[%s] still has following unrecognised keys: %s" % (f, files[f].keys()))
print
dsc_files = k.pkg.dsc_files
print " Dsc Files:"
for f in dsc_files.keys():
print " %s:" % (f)
# Mandatory fields
for i in [ "size", "md5sum" ]:
print " %s: %s" % (i.capitalize(), dsc_files[f][i])
del dsc_files[f][i]
# Optional fields
for i in [ "files id" ]:
if dsc_files[f].has_key(i):
print " %s: %s" % (i.capitalize(), dsc_files[f][i])
del dsc_files[f][i]
if dsc_files[f]:
utils.warn("dsc_files[%s] still has following unrecognised keys: %s" % (f, dsc_files[f].keys()))
k = Changes()
k.load_dot_dak(arg)
print arg
print k
################################################################################
......
......@@ -287,4 +287,103 @@ class Changes(object):
dump_file.close()
def unknown_files_fields(self, name):
return sorted(list( set(self.files[name].keys()) -
set(CHANGESFIELDS_FILES)))
def unknown_changes_fields(self):
return sorted(list( set(self.changes.keys()) -
set(CHANGESFIELDS_MANDATORY + CHANGESFIELDS_OPTIONAL)))
def unknown_dsc_fields(self):
return sorted(list( set(self.dsc.keys()) -
set(CHANGESFIELDS_DSC)))
def unknown_dsc_files_fields(self, name):
return sorted(list( set(self.dsc_files[name].keys()) -
set(CHANGESFIELDS_DSCFILES_MANDATORY + CHANGESFIELDS_DSCFILES_OPTIONAL)))
def str_files(self):
r = []
for name, entry in self.files.items():
r.append(" %s:" % (name))
for i in CHANGESFIELDS_FILES:
if entry.has_key(i):
r.append(" %s: %s" % (i.capitalize(), entry[i]))
xfields = self.unknown_files_fields(name)
if len(xfields) > 0:
r.append("files[%s] still has following unrecognised keys: %s" % (name, ", ".join(xfields)))
return r
def str_changes(self):
r = []
for i in CHANGESFIELDS_MANDATORY:
val = self.changes[i]
if isinstance(val, list):
val = " ".join(val)
elif isinstance(val, dict):
val = " ".join(val.keys())
r.append(' %s: %s' % (i.capitalize(), val))
for i in CHANGESFIELDS_OPTIONAL:
if self.changes.has_key(i):
r.append(' %s: %s' % (i.capitalize(), self.changes[i]))
xfields = self.unknown_changes_fields()
if len(xfields) > 0:
r.append("Warning: changes still has the following unrecognised fields: %s" % ", ".join(xfields))
return r
def str_dsc(self):
r = []
for i in CHANGESFIELDS_DSC:
if self.dsc.has_key(i):
r.append(' %s: %s' % (i.capitalize(), self.dsc[i]))
xfields = self.unknown_dsc_fields()
if len(xfields) > 0:
r.append("Warning: dsc still has the following unrecognised fields: %s" % ", ".join(xfields))
return r
def str_dsc_files(self):
r = []
for name, entry in self.dsc_files.items():
r.append(" %s:" % (name))
for i in CHANGESFIELDS_DSCFILES_MANDATORY:
r.append(" %s: %s" % (i.capitalize(), entry[i]))
for i in CHANGESFIELDS_DSCFILES_OPTIONAL:
if entry.has_key(i):
r.append(" %s: %s" % (i.capitalize(), entry[i]))
xfields = self.unknown_dsc_files_fields(name)
if len(xfields) > 0:
r.append("dsc_files[%s] still has following unrecognised keys: %s" % (name, ", ".join(xfields)))
return r
def __str__(self):
r = []
r.append(" Changes:")
r += self.str_changes()
r.append("")
r.append(" Dsc:")
r += self.str_dsc()
r.append("")
r.append(" Files:")
r += self.str_files()
r.append("")
r.append(" Dsc Files:")
r += self.str_dsc_files()
return "\n".join(r)
__all__.append('Changes')
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册