diff options
author | Helmut Grohne <helmut@subdivi.de> | 2013-07-12 15:12:09 +0200 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2013-07-12 15:12:09 +0200 |
commit | 55bf2271d7cbeeebc02e28a28ae3374aca19d339 (patch) | |
tree | f0f59e15282db38e28d6ec14910cd327c0d2eb5d | |
parent | ada4f94466bf3eddc192cf22c8ecefc9cd5f0ea3 (diff) | |
download | debian-dedup-55bf2271d7cbeeebc02e28a28ae3374aca19d339.tar.gz |
importpkg: split process_package to process_control
-rwxr-xr-x | importpkg.py | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/importpkg.py b/importpkg.py index 6e22b54..5929455 100755 --- a/importpkg.py +++ b/importpkg.py @@ -61,6 +61,22 @@ def get_hashes(tar): hashes[hashobj.name] = hashvalue yield (elem.name, elem.size, hashes) +def process_control(control_contents): + control = deb822.Packages(control_contents) + package = control["package"].encode("ascii") + try: + source = control["source"].encode("ascii").split()[0] + except KeyError: + source = package + version = control["version"].encode("ascii") + architecture = control["architecture"].encode("ascii") + + depends = set(dep[0]["name"].encode("ascii") + for dep in control.relations.get("depends", ()) + if len(dep) == 1) + return dict(package=package, source=source, version=version, + architecture=architecture, depends=depends) + def process_package(filelike): af = ArReader(filelike) af.read_magic() @@ -82,21 +98,7 @@ def process_package(filelike): if state != "control": raise ValueError("duplicate control file") state = "control_file" - control = tf.extractfile(elem).read() - control = deb822.Packages(control) - package = control["package"].encode("ascii") - try: - source = control["source"].encode("ascii").split()[0] - except KeyError: - source = package - version = control["version"].encode("ascii") - architecture = control["architecture"].encode("ascii") - - depends = control.relations.get("depends", []) - depends = set(dep[0]["name"].encode("ascii") - for dep in depends if len(dep) == 1) - yield dict(package=package, source=source, version=version, - architecture=architecture, depends=depends) + yield process_control(tf.extractfile(elem).read()) break continue elif name == "data.tar.gz": |