Sha256: 0cde27e17ecbd0ee5aa5be683fbdd4a733e782f5f831ad4361991b7c6b62f411
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
require "pathname" require "scmd" module GGem; end class GGem::GitRepo NotFoundError = Class.new(ArgumentError) CmdError = Class.new(RuntimeError) attr_reader :path def initialize(repo_path) @path = Pathname.new(File.expand_path(repo_path)) end def run_init_cmd run_cmd("git init").tap do run_cmd("git add --all && git add -f *.keep") end end def run_validate_clean_cmd run_cmd("git diff --exit-code") end def run_validate_committed_cmd run_cmd("git diff-index --quiet --cached HEAD") end def run_push_cmd run_cmd("git push").tap do run_cmd("git push --tags") end end def run_add_version_tag_cmd(version, tag) run_cmd("git tag -a -m \"Version #{version}\" #{tag}") end def run_rm_tag_cmd(tag) run_cmd("git tag -d #{tag}") end private def run_cmd(cmd_string) cmd_string = "cd #{@path} && #{cmd_string}" cmd = Scmd.new(cmd_string) cmd.run if !cmd.success? raise CmdError, "#{cmd_string}\n" \ "#{cmd.stderr.empty? ? cmd.stdout : cmd.stderr}" end [cmd_string, cmd.exitstatus, cmd.stdout] end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ggem-1.9.3 | lib/ggem/git_repo.rb |
ggem-1.9.2 | lib/ggem/git_repo.rb |