middleman-deploy/lib/middleman-deploy/methods/rsync.rb
Cecile Veneziani 11860dd930 Refactoring
- Create a class per method
- Create a class per git strategy
- Extract USAGE into a file
- Refactor git and ftp/sftp methods
2014-01-16 16:52:52 +01:00

39 lines
1 KiB
Ruby

module Middleman
module Deploy
module Methods
class Rsync < Base
attr_reader :clean, :flags, :host, :path, :port, :user
def initialize(server_instance, options={})
super(server_instance, options)
@clean = self.options.clean
@flags = self.options.flags
@host = self.options.host
@path = self.options.path
@port = self.options.port
@user = self.options.user
end
def process
# Append "@" to user if provided.
user = "#{self.user}@" if self.user && !self.user.empty?
dest_url = "#{user}#{self.host}:#{self.path}"
flags = self.flags || '-avze'
command = "rsync #{flags} 'ssh -p #{self.port}' #{self.server_instance.build_dir}/ #{dest_url}"
if self.clean
command += " --delete"
end
puts "## Deploying via rsync to #{dest_url} port=#{self.port}"
run command
end
end
end
end
end