diff --git a/TODO b/TODO index 76efd9a9..234c1b00 100644 --- a/TODO +++ b/TODO @@ -42,7 +42,7 @@ Legend: / verify metodlari + SpecFile + MetaData - - Files + + Files - Index - incremental build - generate binary release number by comparing MD5s diff --git a/pisi/files.py b/pisi/files.py index 995a9a5a..8d6ce65a 100644 --- a/pisi/files.py +++ b/pisi/files.py @@ -43,6 +43,13 @@ class FileInfo: elt.appendChild(hashElt) return elt + def verify(self): + if not self.path: return False + if not self.type: return False + if not self.size: return False + if not self.hash: return False + return True + class Files(XmlFile): def __init__(self): @@ -64,3 +71,8 @@ class Files(XmlFile): for x in self.list: document.appendChild(x.elt(self.dom)) self.writexml(filename) + + def verify(self): + for finfo in self.list: + if not finfo.verify(): return False + return True diff --git a/pisi/package.py b/pisi/package.py index 3ebd235e..977cd0f7 100644 --- a/pisi/package.py +++ b/pisi/package.py @@ -83,6 +83,8 @@ class Package: self.files = Files() self.files.read( join(outdir, const.files_xml) ) + if not self.files.verify(): + raise PackageError, "invalid %s" % const.files_xml def pkg_dir(self): packageDir = self.metadata.package.name + '-' \