Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Capistrano recipe for installing crontab files. Simple, but flexible. Installed as a Rails plugin.
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
recipes
.gitignore
Gemfile
Gemfile.lock
MIT_LICENSE
README.rdoc
VERSION
cap_crontab.gemspec

README.rdoc

CAP CRONTAB INSTALLER

Capistrano recipe for installing crontabs from the config/crontabs directory in your application. Extremely simple, but flexible. Crontab files are evaluated as ERB templates and have access to all capistrano variables.

INSTALLATION

# in Gemfile:
gem 'cap_crontab'

$ bundle install

# in your config/deploy.rb:
require 'cap_crontab'

Create a directory in config/ named crontabs/ and create crontab files for each environment where you want to install a crontab:

config/
  crontabs/
    production
    staging

Example crontab file:

# Do some stuff once an hour
0 * * * * RAILS_ENV=<%= rails_env %> ruby <%= current_path %>/script/cron/do_stuff.rb
# Do some other stuff every twenty minutes
*/20 * * * * RAILS_ENV=<%= rails_env %> ruby <%= current_path %>/script/cron/do_other_stuff.rb

This file is evaluated as an ERB template and all of the existing capistrano variables are available for use.

In your deploy file add the :crontab => true flag on the server(s) where you'd like the crontab installed:

task :staging do
  set :env, "staging"
  role :web,                  'example.com'
  role :app,                  'example.com', :crontab => true
  role :db,                   'example.com', :primary => true
end

Add an after hook to install the crontab on the server on deploy:

after "deploy:symlink", "crontab:install"

USAGE

If you use the 'after' hook the crontab will be installed on each deploy.

Otherwise to install it separately:

cap crontab:install

To show the crontab after installing it:

cap crontab:show

COPYRIGHT

Copyright © 2010 Conor Hunt <conor.hunt AT gmail> Released under the MIT license

Something went wrong with that request. Please try again.