Coverage for port4me/__main__.py: 0%
27 statements
« prev ^ index » next coverage.py v7.3.3, created at 2023-12-15 17:07 -0800
« 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__
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")
15args = vars(parser.parse_args())
17tool = args.pop("tool_positional")
18if tool:
19 args["tool"] = tool
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)