class Backup::Syncer::RSync::Pull

Public Instance Methods

perform!() click to toggle source
# File lib/backup/syncer/rsync/pull.rb, line 5
def perform!
  log!(:started)
  write_password_file!

  create_dest_path!
  run("#{rsync_command} #{host_options}#{paths_to_pull} " \
      "'#{dest_path}'")

  log!(:finished)
ensure
  remove_password_file!
end

Private Instance Methods

create_dest_path!() click to toggle source
# File lib/backup/syncer/rsync/pull.rb, line 41
def create_dest_path!
  FileUtils.mkdir_p dest_path
end
dest_path() click to toggle source

Expand path, since this is local and shell-quoted.

# File lib/backup/syncer/rsync/pull.rb, line 37
def dest_path
  @dest_path ||= File.expand_path(path)
end
paths_to_pull() click to toggle source

Returns the syntax for pulling multiple paths from the remote host. e.g.

rsync -a -e "ssh -p 22" host:'path1' :'path2' '/dest'
rsync -a rsync_user@host::'modname/path1' ::'modname/path2' '/dest'

Remove any preceeding ‘~/’, since these paths are on the remote. Also remove any trailing ‘/`, since we don’t want rsync’s “trailing / on source directories” behavior.

# File lib/backup/syncer/rsync/pull.rb, line 29
def paths_to_pull
  sep = mode == :ssh ? ":" : "::"
  directories.map do |dir|
    "#{sep}'#{dir.sub(/^~\//, "").sub(/\/$/, "")}'"
  end.join(" ").sub(/^#{ sep }/, "")
end