summaryrefslogtreecommitdiff
path: root/autoimport.py
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2016-05-21 17:54:04 +0200
committerHelmut Grohne <helmut@subdivi.de>2016-05-21 17:54:04 +0200
commit4789c77936a634dc717f61309503f99a44b610ed (patch)
tree40e621b92ae1682709ce1f814ceddcbcebb727bb /autoimport.py
parent4cdf80c2ba2535f9a4a66d1bde6f7ac1b380e3d2 (diff)
downloaddebian-dedup-4789c77936a634dc717f61309503f99a44b610ed.tar.gz
move from deprecated optparse to argparse
Diffstat (limited to 'autoimport.py')
-rwxr-xr-xautoimport.py30
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 = ?;",