blob: b0d306f6358a0bb7c30b7014aa85afb78d426dd3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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.directory, 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()
|