diff --git a/sapphire/__main__.py b/sapphire/__main__.py index ab6d5f89..81999500 100644 --- a/sapphire/__main__.py +++ b/sapphire/__main__.py @@ -30,7 +30,7 @@ def parse_args(argv=None): help="Configure console logging (default: %(default)s)", ) parser.add_argument( - "--port", type=int, help="Specify a port to bind to (default: random)" + "--port", default=0, type=int, help="Specify port (default: automatic)" ) parser.add_argument( "--remote", @@ -46,7 +46,9 @@ def parse_args(argv=None): args = parser.parse_args(argv) # sanity check if not args.path.is_dir(): - parser.error(f"Path does not exist '{args.path}'") + parser.error(f"Directory does not exist '{args.path}'") + if args.port < 0 or args.port > 65535: + parser.error("--port must be >= 0 and <= 65535") if args.timeout < 0: parser.error("--timeout must be >= 0") args.log_level = level_map[args.log_level] diff --git a/sapphire/core.py b/sapphire/core.py index 83d1eaf0..c6f51af5 100644 --- a/sapphire/core.py +++ b/sapphire/core.py @@ -49,7 +49,7 @@ def create_listening_socket(attempts=10, port=0, remote=False, timeout=None): """Create listening socket. Search for an open socket if needed and - and configure the socket. If a specific port is unavailable or no + configure the socket. If a specific port is unavailable or no available ports can be found socket.error will be raised. Args: @@ -62,7 +62,7 @@ def create_listening_socket(attempts=10, port=0, remote=False, timeout=None): socket: A listening socket. """ assert attempts > 0 - assert port >= 0 + assert 0 <= port <= 65535 assert timeout is None or timeout > 0 for remaining in reversed(range(attempts)):