class KuberKit::Shell::Commands::RsyncCommands

Public Instance Methods

rsync(shell, source_path, target_path, target_host: nil, exclude: nil, delete: true) click to toggle source
# File lib/kuber_kit/shell/commands/rsync_commands.rb, line 2
def rsync(shell, source_path, target_path, target_host: nil, exclude: nil, delete: true)
  # Add a trailing slash to directory to have behavior similar to CP command
  if path_is_directory?(source_path) && !source_path.end_with?("/")
    source_path = "#{source_path}/"
  end

  if target_host
    destination = "#{target_host}:#{target_path}"
  else
    destination = target_path
  end

  args = [source_path, destination]
  if exclude
    Array(exclude).each do |e|
      args << "--exclude=#{e}"
    end
  end

  if delete
    args << "--delete"
  end

  shell.exec!(%Q{rsync -a #{args.join(' ')}})
end

Private Instance Methods

path_is_directory?(path) click to toggle source
# File lib/kuber_kit/shell/commands/rsync_commands.rb, line 29
def path_is_directory?(path)
  File.directory?(path)
end