Module: Luban::Deployment::Application::Repository::SCM::Git
- Defined in:
- lib/luban/deployment/cli/application/scm/git.rb
Instance Method Summary collapse
- #available? ⇒ Boolean
- #branch? ⇒ Boolean
- #clone ⇒ Object
- #cloned? ⇒ Boolean
- #commit? ⇒ Boolean
- #fetch_revision ⇒ Object
- #git_cmd ⇒ Object
- #release ⇒ Object
- #release_tag ⇒ Object
- #remote_origin ⇒ Object
- #tag? ⇒ Boolean
- #update ⇒ Object
Instance Method Details
#available? ⇒ Boolean
9 10 11 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 9 def available? test(git_cmd, 'ls-remote --heads', from) end |
#branch? ⇒ Boolean
38 39 40 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 38 def branch? within(clone_path) { test(git_cmd, :"show-ref", "--quite --verify refs/heads/#{version}") } end |
#clone ⇒ Object
26 27 28 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 26 def clone test(git_cmd, :clone, '--mirror', from, clone_path) end |
#cloned? ⇒ Boolean
13 14 15 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 13 def cloned? file?(clone_path.join("HEAD")) and from == remote_origin end |
#commit? ⇒ Boolean
46 47 48 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 46 def commit? version =~ /^\h+/ and !revision.nil? end |
#fetch_revision ⇒ Object
21 22 23 24 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 21 def fetch_revision within(clone_path) { capture(git_cmd, "rev-parse --short=#{rev_size} #{version} 2>/dev/null") } #within(clone_path) { capture(git_cmd, "rev-list --max-count=1 --abbrev-commit --abbrev=rev_size #{version}") } end |
#git_cmd ⇒ Object
7 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 7 def git_cmd; :git; end |
#release ⇒ Object
34 35 36 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 34 def release within(clone_path) { test(git_cmd, :archive, version, "--format=#{release_package_extname} --prefix=#{release_tag}/ -o #{release_package_path}") } end |
#release_tag ⇒ Object
50 51 52 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 50 def release_tag @release_tag ||= commit? ? "ref-#{revision}" : super end |
#remote_origin ⇒ Object
17 18 19 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 17 def remote_origin within(clone_path) { capture(git_cmd, "config --get remote.origin.url 2>/dev/null") } end |
#tag? ⇒ Boolean
42 43 44 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 42 def tag? within(clone_path) {test(git_cmd, :"show-ref", "--quite --verify refs/tags/#{version}") } end |
#update ⇒ Object
30 31 32 |
# File 'lib/luban/deployment/cli/application/scm/git.rb', line 30 def update within(clone_path) { test(git_cmd, :remote, :update, "--prune") } end |