module Luban::Deployment::Application::Repository::SCM::Rsync

Public Instance Methods

available?() click to toggle source
# File lib/luban/deployment/cli/application/scm/rsync.rb, line 14
def available?; directory?(from); end
clone() click to toggle source
# File lib/luban/deployment/cli/application/scm/rsync.rb, line 26
def clone
  test(rsync_cmd, "-acz", "#{from}/", clone_path)
end
cloned?() click to toggle source
# 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() click to toggle source
# 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 | $(type -p md5sum md5 | head -1)")[/^\h+/][0, rev_size]
end
init() click to toggle source
Calls superclass method
# 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() click to toggle source
# 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() click to toggle source
# File lib/luban/deployment/cli/application/scm/rsync.rb, line 12
def rsync_cmd; :rsync; end
update() click to toggle source
# File lib/luban/deployment/cli/application/scm/rsync.rb, line 30
def update
  test(rsync_cmd, "-acz", "--delete", "#{from}/", clone_path)
end