diff --git a/hap.py b/hap.py index 5b0e528..c1e5ff1 100755 --- a/hap.py +++ b/hap.py @@ -4,13 +4,16 @@ from kubernetes import client, config import sys, random SVC_TYPE = 'LoadBalancer' -PORT_COUNT = 1 -if len(sys.argv) > 1: - try: - PORT_COUNT = int(sys.argv[-1]) - except: - sys.exit('optional positional parameter must be a number (default: 1)') +def getopts(): + """parse command-line""" + from optparse import OptionParser, OptionValueError + usage = "%prog [options]" + parser = OptionParser(usage=usage) + parser.add_option("-n", "--count", type="int", default=1, dest="port_count", help="number of ports needed (default: %default)") + return parser.parse_args() + +options, args = getopts() # load client configuration (kubeconfig) config.load_kube_config() @@ -29,4 +32,4 @@ full_port_range = range(49152, 65536) # https://tools.ietf.org/html/rfc6335#sect available_ports = list(set(full_port_range) - set(used_ports)) # pick available ports -print(' '.join(map(str, random.sample(available_ports, PORT_COUNT)))) +print(' '.join(map(str, random.sample(available_ports, options.port_count))))