class Raykit::Git::Directory
Functionality to manage a local clone of a git repository
def branch
def branch Dir.chdir(directory) do scan=`git branch`.scan(/\*\s([\w\.-]+)/) return scan[0][0].to_s if(!scan.nil? && scan.length > 0 && scan[0].length > 0) end 'master' end
def initialize(directory)
def initialize(directory) @directory=directory end
def latest_tag(branch)
def latest_tag(branch) Dir.chdir(directory) do return `git describe --abbrev=0`.strip end '' end
def outstanding_commit?
def outstanding_commit? Dir.chdir(directory) do if(user_can_commit) return !`git status`.include?('nothing to commit,') else return false end end end
def pull
def pull Dir.chdir(directory) do Raykit::run('git pull') end end
def rake(task)
def rake(task) Dir.chdir(directory) do if(File.exist?('rakefile.rb')) Raykit::run("rake #{task}") else puts 'rakefile.rb not found' end end end
def remote
def remote Dir.chdir(directory) do return Command.new('git config --get remote.origin.url').output.strip if(Dir.exist?('.git')) end `` end
def user_can_commit
def user_can_commit return false if(user_name.length == 0) return false if(user_email.length == 0) return true end
def user_email
def user_email `git config --get user.email`.strip end
def user_name
def user_name `git config --get user.name`.strip end