#!/usr/bin/env python
# -*- coding: utf-8 -*-
""" Setup file for giturl package """
from os import getcwd
from sys import argv
import git


def rename(repo, branch, newurl):
    print "git remote set-url %s %s" % (branch, newurl)
    if repo.remotes != []:
        for r in repo.remotes:
            if r.name == branch:
                r.config_writer.set("url", newurl)
                return
    raise ValueError("fatal: No such remote '%s'" % branch)

args = len(argv)
try:
    repo = git.Repo(getcwd())
except:
    repo = None

if repo:
    if args == 1:  # remotes list
        for r in repo.remotes:
            print r.name, r.url
    if args == 2:  # edit single remote url
        if r.remotes != []:
            if len(r.remotes) == 1:
                rename(repo, repo.remotes[0].name, argv[1])
            else:
                raise OSError("""more than 1 remotes
use:
giturl branch newurl""")
        else:
            raise OSError("remotes not defined")
    if args == 3:  # edit branch remote url
        rename(repo, argv[1], argv[2])
else:
    raise OSError("not a git repository")
