class Octopress::Deploy::Rsync
Public Class Methods
default_config(options={})
click to toggle source
# File lib/octopress-deploy/rsync.rb, line 64 def self.default_config(options={}) <<-CONFIG #{"user: #{options[:user]}".ljust(40)} # The user for your host, e.g. user@host.com #{"remote_path: #{options[:remote_path]}".ljust(40)} # Destination directory #{"delete: #{options[:delete]}".ljust(40)} # Remove files from destination which don't match files in source #{"port: #{options[:port]}".ljust(40)} # If your host requires a non standard port #{"flags: #{options[:flags] || ' -avz'}".ljust(40)} # Modify flags as necessary to suit your hosting setup #{"# exclude: ".ljust(40)} # files to exclude #{"# exclude-from: ".ljust(40)} # Path to file containing list of files to exclude #{"# include: ".ljust(40)} # files to include #{"# include-from: ".ljust(40)} # Path to file containing list of files to include CONFIG end
new(options)
click to toggle source
# File lib/octopress-deploy/rsync.rb, line 5 def initialize(options) @options = options @flags = @options[:flags] || ' -avz' @user = @options[:user] @port = @options[:port] @local = @options[:site_dir] || '_site' @remote_path = @options[:remote_path] @exclude = @options[:exclude] @exclude_from = @options[:exclude_from] @exclude_from = File.expand_path(@exclude_from) if @exclude_from @include = @options[:include] @include_from = @options[:include_from] @include_from = File.expand_path(@include_from) if @include_from @delete = @options[:delete] || false @pull_dir = @options[:dir] end
Public Instance Methods
cmd()
click to toggle source
# File lib/octopress-deploy/rsync.rb, line 36 def cmd local = '' remote = '' cmd = "rsync " cmd << "#{@flags} " cmd << " --exclude-from #{@exclude_from}" if @exclude_from Array(@exclude).each do |e| cmd << " --exclude #{e}" end cmd << " --include-from #{@include_from}" if @include_from Array(@include).each do |i| cmd << " --include #{i}" end cmd << " --rsh='ssh -p#{@port}'" if @user && @port cmd << " --delete " if @delete local << " #{File.join(@local, '')} " remote << " #{@user}:" if @user remote << "#{@remote_path}" if @pull_dir cmd << remote+'/ ' << @pull_dir else cmd << local << remote end end
pull()
click to toggle source
# File lib/octopress-deploy/rsync.rb, line 31 def pull puts "Syncing #{@remote_path} files to #{@pull_dir} with rsync." system cmd end
push()
click to toggle source
# File lib/octopress-deploy/rsync.rb, line 22 def push if File.exist?(@local) puts "Syncing #{@local} files to #{@remote_path} with rsync." system cmd else abort "Cannot find site build at #{@local}. Be sure to build your site first." end end