diff options
Diffstat (limited to 'autoimport.py')
-rwxr-xr-x | autoimport.py | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/autoimport.py b/autoimport.py index 0d26fe4..bbe5029 100755 --- a/autoimport.py +++ b/autoimport.py @@ -3,11 +3,11 @@ packages contained. It has rather strong assumptions on the working directory. """ +import argparse import gzip import errno import io import multiprocessing -import optparse import os import sqlite3 import subprocess @@ -86,22 +86,24 @@ def process_pkg(name, pkgdict, outpath): print("preprocessed %s" % name) def main(): - parser = optparse.OptionParser() - parser.add_option("-n", "--new", action="store_true", - help="avoid reimporting same versions") - parser.add_option("-p", "--prune", action="store_true", - help="prune packages old packages") - parser.add_option("-d", "--database", action="store", - default="test.sqlite3", - help="path to the sqlite3 database file") - options, args = parser.parse_args() + parser = argparse.ArgumentParser() + parser.add_argument("-n", "--new", action="store_true", + help="avoid reimporting same versions") + parser.add_argument("-p", "--prune", action="store_true", + help="prune packages old packages") + parser.add_argument("-d", "--database", action="store", + default="test.sqlite3", + help="path to the sqlite3 database file") + parser.add_argument("files", nargs='+', + help="files or directories or repository urls") + args = parser.parse_args() tmpdir = tempfile.mkdtemp(prefix="debian-dedup") - db = sqlite3.connect(options.database) + db = sqlite3.connect(args.database) cur = db.cursor() cur.execute("PRAGMA foreign_keys = ON;") e = concurrent.futures.ThreadPoolExecutor(multiprocessing.cpu_count()) pkgs = {} - for d in args: + for d in args.files: print("processing %s" % d) if d.startswith(("http://", "https://", "ftp://", "file://")): process_http(pkgs, d) @@ -114,7 +116,7 @@ def main(): cur.execute("SELECT name, version FROM package;") knownpkgs = dict((row[0], row[1]) for row in cur.fetchall()) distpkgs = set(pkgs.keys()) - if options.new: + if args.new: for name in distpkgs: if name in knownpkgs and version_compare(pkgs[name]["version"], knownpkgs[name]) <= 0: @@ -142,7 +144,7 @@ def main(): else: os.unlink(inf) - if options.prune: + if args.prune: delpkgs = knownpkgs - distpkgs print("clearing packages %s" % " ".join(delpkgs)) cur.executemany("DELETE FROM package WHERE name = ?;", |