Files
CN2021/client.py
2021-03-28 19:53:14 +02:00

36 lines
1.2 KiB
Python

#!/usr/bin/env python3
import argparse
import logging
import sys
from client import command as cmd
from httplib.exceptions import UnhandledHTTPCode
def main():
parser = argparse.ArgumentParser(description='HTTP Client')
parser.add_argument("--verbose", "-v", action='count', default=0, help="Increase verbosity level of logging")
parser.add_argument("--command", "-c", help="HEAD, GET, PUT or POST", default="GET")
parser.add_argument("--port", "-p", help="The port used to connect with the server", default=80, type=int)
parser.add_argument("URI", help="The URI to connect to")
arguments = parser.parse_args()
# Setup logging
logging.basicConfig(level=logging.INFO - (10 * arguments.verbose), format="[%(levelname)s] %(message)s")
logging.debug("Arguments: %s", arguments)
command = cmd.create(arguments.command, arguments.URI, arguments.port)
command.execute()
try:
main()
except UnhandledHTTPCode as e:
logging.info(f"[{e.status_code}] {e.cause}:\r\n{e.headers}")
sys.exit(2)
except Exception as e:
logging.info("[ABRT] Internal error: %s", e)
logging.debug("Internal error", exc_info=e)
sys.exit(1)