pybl/pybl-tool.py

49 lines
1.5 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
from pybl import PyBLConfig
import os
import sys
import tarfile
import urllib.request
import argparse
def download(url, path):
try:
print("Retrieving {}, storing it to {} ...".format(config.url, config.archive))
filename, _ = urllib.request.urlretrieve(url, filename=path)
print("{} Successfully downloaded".format(filename))
except Exception as exp:
print(exp)
exit(1)
def folder_exists(basedir):
ret = os.path.isdir(basedir)
print("Destination folder {} already exists".format(basedir))
return ret
def extract(basedir, archive):
print("Extracting blacklists to {} ...".format(config.basedir))
bl_file = tarfile.open(archive)
bl_file.extractall(basedir)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Action')
parser.add_argument('--config', metavar='config', type=str, nargs=1, default='pybl.conf', help='path to config file')
parser.add_argument('--force', action="store_true", help='force download and extract archive')
parser.add_argument('action', metavar='action', type=str, help='action blacklists using config file', choices=["import"])
args = parser.parse_args()
if args.action == "import":
config = PyBLConfig()
print("Parsing configuration file ...")
config.getconfig(args.config[0])
exists = folder_exists(config.basedir)
if not exists or args.force:
download(config.url, config.archive)
extract(config.basedir, config.archive)