def METHOD_NAME():
    parser = argparse.ArgumentParser()
    parser.add_argument("-D", "--debug", help="Enable debug logging", action="store_true")
    parser.add_argument("--version", action="version", help="show program version", version=version.__version__)
    parser.add_argument("--site", help="backup site", required=False)
    parser.add_argument("--key-id", help="key alias as used with encryption_key_id configuration directive", required=True)
    parser.add_argument("--bits", help="length of the generated key in bits, default %(default)d", default=3072, type=int)
    parser.add_argument("--config", help="configuration file to store the keys in", default=os.environ.get("PGHOARD_CONFIG"))
    args = parser.parse_args()
    logutil.configure_logging(level=logging.DEBUG if args.debug else logging.INFO)
    rsa_private_key, rsa_public_key = create_keys(args.bits)
    try:
        if args.config:
            return save_keys(args.config, args.site, args.key_id, rsa_private_key, rsa_public_key)
        else:
            return show_key_config(args.site, args.key_id, rsa_private_key, rsa_public_key)
    except (CommandError, InvalidConfigurationError) as ex:
        print("FATAL: {}".format(ex))
        return 1