class Raykit::Git

def self.add_remote

def self.add_remote
    remote = get_remote
    if(remote.length > 0)
    #if(Dir.exist?('.git'))

        #cmd = Command.new

        #cmd.command = 'git config --get remote.origin.url'

        #cmd.run

        #remote = cmd.output.strip

        remote_urls_copy = remote_urls
        if(!remote_urls_copy.include?(remote))
            remote_urls_copy.insert(0,remote)
            Git::remote_urls = remote_urls_copy
        end
    end
end

def self.branch

def self.branch
    branches = `git branch`
    branches.match(/ ([\w.]+)/).captures[0]
end

def self.get_remote

def self.get_remote
    if(Dir.exist?('.git'))
        cmd = Command.new
        cmd.command = 'git config --get remote.origin.url'
        cmd.run
        return cmd.output.strip
    else
        ``
    end
end

def self.last_tag

def self.last_tag
    `git describe --abbrev=0 --tags`.strip
end

def self.list_remotes

def self.list_remotes
    remote_urls.each{|url| puts url}
end

def self.outstanding_commit

def self.outstanding_commit
    if(Git::user_can_commit)
        return !`git status`.include?('nothing to commit,')
    else
        return false
    end
end

def self.remote_urls

def self.remote_urls
    filename="#{Environment::log_dir}/Raykit.Git.RemoteUrls.json";
    if(File.exist?(filename))
        JSON.parse(File.read(filename))
    else
        Array.new
    end
end

def self.remote_urls=(urls)

def self.remote_urls=(urls)
    filename="#{Environment::log_dir}/Raykit.Git.RemoteUrls.json"
    File.open(filename,'w'){|f|
        f.write(JSON.generate(urls))
    }
end

def self.user_can_commit

def self.user_can_commit
    return false if(user_name.length == 0)
    return false if(user_email.length == 0)
    return true
end

def self.user_email

def self.user_email
    return `git config --get user.email`.strip
end

def self.user_name

def self.user_name
    return `git config --get user.name`.strip
end