def track(args):
    if not args:
        print formatDefinitions(defaults, 80)
        return
    try:
        config, files = parseargs(args, defaults, 0, 0)
    except ValueError as e:
        print 'error: ' + str(e)
        print 'run with no arguments for parameter explanations'
        return

    r = RawServer(Event(), config['tracker_timeout_check_interval'], config['tracker_socket_timeout'], ipv6_enable=config['ipv6_enabled'])
    t = Tracker(config, r)
    r.bind(config['minport'], config['bind'], reuse=True, ipv6_socket_style=config['ipv6_binds_v4'])
    r.listen_forever(HTTPHandler(t.get, config['min_time_between_log_flushes']))
    t.save_state()
    print '# Shutting down: ' + isotime()
def track(args):
    if not args:
        print formatDefinitions(defaults, 80)
        return
    try:
        config, files = parseargs(args, defaults, 0, 0)
    except ValueError as e:
        print 'error: ' + str(e)
        print 'run with no arguments for parameter explanations'
        return

    r = RawServer(Event(),
                  config['tracker_timeout_check_interval'],
                  config['tracker_socket_timeout'],
                  ipv6_enable=config['ipv6_enabled'])
    t = Tracker(config, r)
    r.bind(config['minport'],
           config['bind'],
           reuse=True,
           ipv6_socket_style=config['ipv6_binds_v4'])
    r.listen_forever(HTTPHandler(t.get,
                                 config['min_time_between_log_flushes']))
    t.save_state()
    print '# Shutting down: ' + isotime()
def get_usage(defs):
    return parseargs.formatDefinitions(defs, 80)
def get_usage(defs):
    return parseargs.formatDefinitions(defs, 80)