#!/usr/bin/env python3 import database import argparse import sys if __name__ == '__main__': # Parsing arguments parser = argparse.ArgumentParser( description="TODO") parser.add_argument( '-o', '--output', type=argparse.FileType('w'), default=sys.stdout, help="TODO") parser.add_argument( '-f', '--first-party', action='store_true', help="TODO") parser.add_argument( '-e', '--end-chain', action='store_true', help="TODO") parser.add_argument( '-r', '--rules', action='store_true', help="TODO") parser.add_argument( '-b', '--base-rules', action='store_true', help="TODO implies rules") parser.add_argument( '-d', '--no-dupplicates', action='store_true', help="TODO") parser.add_argument( '-x', '--explain', action='store_true', help="TODO") parser.add_argument( '-c', '--count', action='store_true', help="TODO") args = parser.parse_args() DB = database.Database() if args.count: assert not args.explain print(DB.count_records( first_party_only=args.first_party, end_chain_only=args.end_chain, no_dupplicates=args.no_dupplicates, rules_only=args.base_rules, hostnames_only=not (args.rules or args.base_rules), )) else: for domain in DB.list_records( first_party_only=args.first_party, end_chain_only=args.end_chain, no_dupplicates=args.no_dupplicates, rules_only=args.base_rules, hostnames_only=not (args.rules or args.base_rules), explain=args.explain, ): print(domain, file=args.output)