summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-ximportpkg.py8
-rw-r--r--schema.sql1
2 files changed, 9 insertions, 0 deletions
diff --git a/importpkg.py b/importpkg.py
index dc581e7..2f3979b 100755
--- a/importpkg.py
+++ b/importpkg.py
@@ -131,6 +131,10 @@ def process_package(db, filelike):
control = tf.extractfile(elem).read()
control = deb822.Packages(control)
package = control["package"].encode("ascii")
+ try:
+ source = control["source"].encode("ascii")
+ except KeyError:
+ source = package
version = control["version"].encode("ascii")
architecture = control["architecture"].encode("ascii")
@@ -153,6 +157,10 @@ def process_package(db, filelike):
(package,))
cur.executemany("INSERT INTO dependency (package, required) VALUES (?, ?);",
((package, dep) for dep in depends))
+ cur.execute("DELETE FROM source WHERE package = ?;",
+ (package,))
+ cur.execute("INSERT INTO source (source, package) VALUES (?, ?);",
+ (source, package))
break
continue
elif name == "data.tar.gz":
diff --git a/schema.sql b/schema.sql
index b5397ee..878a5fe 100644
--- a/schema.sql
+++ b/schema.sql
@@ -1,6 +1,7 @@
CREATE TABLE package (package TEXT PRIMARY KEY, version TEXT, architecture TEXT);
CREATE TABLE content (package TEXT, filename TEXT, size INTEGER, function TEXT, hash TEXT, FOREIGN KEY (package) REFERENCES package(package));
CREATE TABLE dependency (package TEXT, required TEXT, FOREIGN KEY (package) REFERENCES package(package), FOREIGN KEY (required) REFERENCES package(package));
+CREATE TABLE source (source TEXT, package TEXT, FOREIGN KEY (package) REFERENCES package(package));
CREATE INDEX content_package_index ON content (package);
CREATE INDEX content_hash_index ON content (hash);