def run(params={})
config_name = params.has_key?(:config_name) ? params[:config_name].to_sym : :default
dry_run = params.has_key?(:dry_run) ? params[:dry_run] : false
error 'No deploy configuration found' if @site.config[:deploy].nil?
error "No deploy configuration found for #{config_name}" if @site.config[:deploy][config_name].nil?
src = File.expand_path(@site.config[:output_dir]) + '/'
dst = @site.config[:deploy][config_name][:dst]
options = @site.config[:deploy][config_name][:options] || DEFAULT_OPTIONS
error 'No dst found in deployment configuration' if dst.nil?
error 'dst requires no trailing slash' if dst[-1,1] == '/'
if dry_run
warn 'Performing a dry-run; no actions will actually be performed'
run_shell_cmd([ 'echo', 'rsync', options, src, dst ].flatten)
else
run_shell_cmd([ 'rsync', options, src, dst ].flatten)
end
end