import argparse
import sys

from voussoirkit import betterhelp
from voussoirkit import networktools
from voussoirkit import vlogging

def wait_for_internet_argparse(args):
    try:
        networktools.wait_for_internet(timeout=args.timeout)
        return 0
    except networktools.NoInternet:
        return 1

@vlogging.main_decorator
def main(argv):
    parser = argparse.ArgumentParser(
        description='''
        This program will block until internet access is available. It can be useful to
        run this program before running another program that expects an internet
        connection.
        ''',
    )
    parser.add_argument(
        'timeout',
        type=int,
        help='''
        An integer number of seconds, after which to give up and return 1.
        ''',
    )
    parser.set_defaults(func=wait_for_internet_argparse)

    return betterhelp.go(parser, argv)

if __name__ == '__main__':
    raise SystemExit(main(sys.argv[1:]))