Files
git-utilities/lib/feature/base.rb
2015-06-06 06:43:34 -04:00

55 lines
1.2 KiB
Ruby

module Feature
class Base
attr_reader :argv
def initialize (argv)
@argv = argv
end
def run_cmd ( cmd, fallback_branch = current_branch )
puts
puts cmd
success = system cmd
unless success
system "git checkout #{fallback_branch}"
error "(see above)"
end
puts
end
def current_branch
@current_branch ||= `git branch|grep '\*'|sed 's/\*\s*//'`.strip
end
def remote_branch (branch)
@remote_branch ||= `git branch -r|grep origin|grep -v 'HEAD'|grep #{branch}`.strip
end
def standard_branches
['master','develop','integration']
end
def parse_branch (branch)
parts = branch.split('-')
error "invalid branch: user-standard-feature" unless parts.size > 2
user = parts.shift
standard = parts.shift
error "invalid user: #{user}" unless ENV['USER'] == user
error "invalid branch: #{standard}" unless standard_branches.include? standard
feature = parts.join('-')
{ user: user, standard: standard, feature: feature }
end
def error ( msg )
puts
puts "ERROR: #{msg}"
puts
exit
end
end
end