Guard::Rsync

Rsync guard allows to automatically sync directories when source file changes.

Focus of this guard task is to sync directories while excluding autogenerated files and their sources.

Install

Please be sure to have Guard installed before continue.

Install the gem:

$ gem install guard-rsync

Add it to your Gemfile (inside development group):

gem 'guard-rsync'

Usage

Please read Guard usage doc

Guardfile

The following example pairs the coffeescript guard with a rsync guard.

group(:build_my_app) do
  guard('rsync', {
    :input => 'apps_src/my_app',
    :output => 'apps',
    :excludes => {
      /(.+)\.coffee$/ => (lambda {|m| "#{m[1]}.js"})
    },
    :run_group_on_start => true
  }) do
    watch(%r{^apps_src/my_app/(.+\.(?!coffee)(.*)|[^.]+)$})
  end

  guard 'coffeescript', :input => 'apps_src/my_app', :output => 'apps/my_app'
end

Author

Kristofor Selden