module Employ module Git extend self def tag!(env, tag = nil) name = "#{env}-#{Time.now.strftime('%Y%m%dT%H%M%S')}" `git tag #{name} #{tag}` `git push --tags` name end def retag!(env, tag) Git.tag! env, tag end def tags(env) `git fetch --tags` `git tag | grep ^#{env}-`.lines end def last_tag(env) tags(env).max end def penultimate_tag(env) tags(env).sort.tap(&:pop).last end def tag_sha(tag) `git show #{tag} --format="%H"`.lines.last end end end