Sha256: 456b4ba43d5bba7bff63e1082e7b136dff81589e789cd9a7abda57738c2abf2e
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
require "pathname" require "scmd" module GGem class GitRepo 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 *.gitkeep") 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 NotFoundError = Class.new(ArgumentError) CmdError = Class.new(RuntimeError) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ggem-1.9.1 | lib/ggem/git_repo.rb |
ggem-1.9.0 | lib/ggem/git_repo.rb |