Total Complexity | 5 |
Total Lines | 46 |
Duplicated Lines | 0 % |
Coverage | 100% |
Changes | 0 |
1 | """Command line program for DNSLink protocol.""" |
||
2 | |||
3 | 1 | import argparse |
|
4 | 1 | import sys |
|
5 | |||
6 | 1 | from . import resolve |
|
7 | |||
8 | |||
9 | 1 | def handle_resolve(args): |
|
10 | """Handle resolve.""" |
||
11 | |||
12 | 1 | for protocol in resolve(args.domain, args.protocol, args.depth): |
|
13 | 1 | print(protocol) |
|
14 | |||
15 | |||
16 | 1 | def main(): |
|
17 | """Handle command line program.""" |
||
18 | |||
19 | 1 | parser = argparse.ArgumentParser( |
|
20 | prog=__package__, |
||
21 | description='Python implementation of DNSLink protocol' |
||
22 | ) |
||
23 | 1 | subparsers = parser.add_subparsers() |
|
24 | |||
25 | 1 | resolve_parser = subparsers.add_parser( |
|
26 | name='resolve', |
||
27 | help='resolve a DNSLink record' |
||
28 | ) |
||
29 | 1 | resolve_parser.set_defaults(which='resolve') |
|
30 | 1 | resolve_parser.add_argument('domain', help='a domain to resolve') |
|
31 | 1 | resolve_parser.add_argument('--protocol', help='a record protocol', type=str, default=None) |
|
32 | 1 | resolve_parser.add_argument('--depth', help='a recursion depth', type=int, default=16) |
|
33 | |||
34 | if len(sys.argv) == 1: # pragma: no cover |
||
35 | parser.print_help(sys.stderr) |
||
36 | sys.exit(1) |
||
37 | |||
38 | 1 | args = parser.parse_args() |
|
39 | |||
40 | 1 | if args.which == 'resolve': |
|
41 | 1 | handle_resolve(args) |
|
42 | |||
43 | |||
44 | if __name__ == '__main__': # pragma: no cover |
||
45 | main() |
||
46 |