#!/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)