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