summaryrefslogtreecommitdiff
path: root/clean_repo.py
diff options
context:
space:
mode:
authorJoshua Ismael Haase Hernández <hahj87@gmail.com>2011-04-11 01:09:25 -0500
committerJoshua Ismael Haase Hernández <hahj87@gmail.com>2011-04-11 01:09:25 -0500
commit3fb5f8efef231dd7784be880934cd106603ab6f1 (patch)
treeb3f62a0fb712de3f0c5fea92f7171d6fbf3cd2b2 /clean_repo.py
parent61ee5da8b31b44e80e008619a32ca886d8799646 (diff)
bash-port ready for testing.
Diffstat (limited to 'clean_repo.py')
-rw-r--r--clean_repo.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/clean_repo.py b/clean_repo.py
new file mode 100644
index 0000000..29d446d
--- /dev/null
+++ b/clean_repo.py
@@ -0,0 +1,45 @@
+#! /usr/bin/python
+#-*- encoding: utf-8 -*-
+from repm.filter import *
+import argparse
+
+def remove_from_blacklist(path_to_db, blacklisted_names,
+ debug=config["debug"]):
+ """ Check the blacklist and remove packages on the db"""
+
+ pkgs=[pkg for pkg in pkginfo_from_db(path_to_db) if
+ pkg["name"] in blacklisted_names]
+ if pkgs:
+ lista=" ".join(pkgs)
+ cmd = "repo-remove " + path_to_db + " " + lista
+ printf(cmd)
+ a = check_output(cmd)
+ if debug:
+ printf(a)
+ return pkgs, cmd
+
+def cleanup_nonfree_in_dir(directory, blacklisted_names):
+ pkgs=pkginfo_from_files_in_dir(directory)
+ for package in pkgs:
+ if package["name"] in blacklisted_names:
+ os.remove(package["location"])
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(
+ description="Clean a repo db and packages")
+ parser.add_argument("-b", "--database", type=str,
+ help="dabatase to clean")
+ parser.add_argument("-d", "--directory", type=str,
+ help="directory to clean")
+ args=parser.parse_args()
+
+ if args.directory:
+ cleanup_nonfree_in_dir(args.database, listado(config["blacklist"]))
+
+ if args.database:
+ pkgs=pkginfo_from_db(args.database)
+ remove_from_blacklist(args.database, pkgs,
+ tuple(listado(config["blacklist"]) +
+ listado(config["pending"])))
+ if not args.directory and not args.database:
+ parser.print_help()