#!/usr/bin/python3

from dulwich.client import get_transport_and_path_from_url
from dulwich.objects import ZERO_SHA
from dulwich.pack import pack_objects_to_data

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('url', type=str)
parser.add_argument('old_ref', type=str)
parser.add_argument('new_ref', type=str)
args = parser.parse_args()

client, path = get_transport_and_path_from_url(args.url)


def generate_pack_data(*args, **kwargs):
    return pack_objects_to_data([])


def update_refs(refs):
    sha = refs[args.old_ref.encode('utf-8')]
    return {
        args.old_ref.encode('utf-8'): ZERO_SHA,
        args.new_ref.encode('utf-8'): sha}


client.send_pack(path, update_refs, generate_pack_data)
print("Renamed %s to %s" % (args.old_ref, args.new_ref))
