Coverage for port4me/__main__.py: 0%

27 statements  

« prev     ^ index     » next       coverage.py v7.3.3, created at 2023-12-15 17:07 -0800

1from argparse import ArgumentParser 

2from . import port4me, parse_ports, __version__ 

3 

4parser = ArgumentParser(prog="python -m port4me", description="port4me: Get the Same, Personal, Free TCP Port over and over") 

5parser.add_argument("tool", type=str, nargs="?") 

6parser.add_argument("--tool", type=str, metavar="TOOL", dest="tool_positional", help="Used in the seed when generating port numbers, to get a different port sequence for different tools.") 

7parser.add_argument("--user", type=str, help="Used in the seed when generating port numbers. Defaults to determining the username with getuser().") 

8parser.add_argument("--prepend", type=parse_ports, metavar="PORTS", help="A list of ports to try first") 

9parser.add_argument("--include", type=parse_ports, metavar="PORTS", help="If specified, skip any ports not in this list") 

10parser.add_argument("--exclude", type=parse_ports, metavar="PORTS", help="Skip any ports in this list") 

11parser.add_argument("--list", type=int, metavar="N", help="Instead of returning a single port, return a list of this many ports without checking if they are free.") 

12parser.add_argument("--test", type=int, metavar="PORT", help="If specified, return whether the port `PORT` is not in use. All other parameters will be ignored.") 

13parser.add_argument("--version", action="store_true", help="Show version") 

14 

15args = vars(parser.parse_args()) 

16 

17tool = args.pop("tool_positional") 

18if tool: 

19 args["tool"] = tool 

20 

21if args.pop("version"): 

22 print(__version__) 

23elif args.get("test"): 

24 from sys import exit 

25 if port4me(**args): 

26 exit(0) 

27 else: 

28 exit(1) 

29else: 

30 res=port4me(**args) 

31 if isinstance(res, list): 

32 print(*res, sep="\n") 

33 else: 

34 print(res)