Sha256: 25f0529d01d09571ad528ec0428e12c4144376a402c784c3576fd44f198df508
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
class Vlad::Git # Duh. VERSION = "2.1.0" set :source, Vlad::Git.new set :git_cmd, "git" ## # Returns the command that will check out +revision+ from the # repository into directory +destination+. +revision+ can be any # SHA1 or equivalent (e.g. branch, tag, etc...) def checkout(revision, destination) destination = File.join(destination, 'repo') revision = 'HEAD' if revision =~ /head/i [ "rm -rf #{destination}", "#{git_cmd} clone #{repository} #{destination}", "cd #{destination}", "#{git_cmd} submodule update --init", "#{git_cmd} checkout -f -b deployed-#{revision} #{revision}", "cd -" ].join(" && ") end ## # Returns the command that will export +revision+ from the current directory # into the directory +destination+. # Expects to be run from +scm_path+ after Vlad::Git#checkout def export(revision, destination) revision = 'HEAD' if revision =~ /head/i revision = "deployed-#{revision}" [ "mkdir -p #{destination}", "cd repo", "#{git_cmd} archive --format=tar #{revision} | (cd #{destination} && tar xf -)", "#{git_cmd} submodule foreach '#{git_cmd} archive --format=tar $sha1 | (cd #{destination}/$path && tar xf -)'", "cd -", "cd .." ].join(" && ") end ## # Returns a command that maps human-friendly revision identifier +revision+ # into a git SHA1. def revision(revision) revision = 'HEAD' if revision =~ /head/i "`#{git_cmd} rev-parse #{revision}`" end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vlad-git-2.1.0 | lib/vlad/git.rb |