Module: Luban::Deployment::Application::Repository::SCM::Rsync
- Defined in:
- lib/luban/deployment/cli/application/scm/rsync.rb
Instance Method Summary collapse
- #available? ⇒ Boolean
- #clone ⇒ Object
- #cloned? ⇒ Boolean
- #fetch_revision ⇒ Object
- #init ⇒ Object
- #release ⇒ Object
- #rsync_cmd ⇒ Object
- #update ⇒ Object
Instance Method Details
#available? ⇒ Boolean
14 |
# File 'lib/luban/deployment/cli/application/scm/rsync.rb', line 14 def available?; directory?(from); end |
#clone ⇒ Object
26 27 28 |
# File 'lib/luban/deployment/cli/application/scm/rsync.rb', line 26 def clone test(rsync_cmd, "-acz", "#{from}/", clone_path) end |
#cloned? ⇒ Boolean
16 17 18 19 |
# File 'lib/luban/deployment/cli/application/scm/rsync.rb', line 16 def cloned? directory?(clone_path) and test("[ \"$(ls -A #{clone_path})\" ]") # Not empty end |
#fetch_revision ⇒ Object
21 22 23 24 |
# File 'lib/luban/deployment/cli/application/scm/rsync.rb', line 21 def fetch_revision # Use MD5 as the revision capture(:tar, "-cf - #{clone_path} 2>/dev/null | openssl md5")[/\h+$/][0, rev_size] end |
#init ⇒ Object
7 8 9 10 |
# File 'lib/luban/deployment/cli/application/scm/rsync.rb', line 7 def init super @from = Pathname.new(@from) unless from.is_a?(Pathname) end |
#release ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/luban/deployment/cli/application/scm/rsync.rb', line 34 def release within(releases_path) do assure_dirs(release_tag) execute(:tar, "-C #{clone_path} -cf - . | tar -C #{release_tag} -xf -") execute(:tar, "-czf", release_package_path, release_tag) rmdir(release_tag) end end |
#rsync_cmd ⇒ Object
12 |
# File 'lib/luban/deployment/cli/application/scm/rsync.rb', line 12 def rsync_cmd; :rsync; end |
#update ⇒ Object
30 31 32 |
# File 'lib/luban/deployment/cli/application/scm/rsync.rb', line 30 def update test(rsync_cmd, "-acz", "--delete", "#{from}/", clone_path) end |