#!/usr/bin/env python3

import sys
import argparse
import logging
import requests
import urllib

import config_load as config


logger = logging.getLogger(__name__)


def trigger_sync_hook(command, repo):
    command_to_event = {
        "git-receive-pack": "push",
    }
    event = command_to_event.get(command)
    if not event:
        return
    
    url = f"https://{config.APP_FQDN}/pub/webhook"
    query_params = {
        "name": "evagit_sync",
        "event": event,
        "repo": urllib.parse.quote(repo.rstrip(".git").lstrip("/"))
    }
    resp = requests.post(url, params=query_params)
    logging.warning(f"{resp.status_code}: {resp.text}")


if __name__ == "__main__":
    arg_parser = argparse.ArgumentParser()
    arg_parser.add_argument("command")
    arg_parser.add_argument("relative_repo_path")
    args = arg_parser.parse_args(sys.argv[1:])
    
    trigger_sync_hook(args.command, args.relative_repo_path)