grunt-crontab
Grunt plugin to update system crontabGetting Started
This plugin requires Grunt.If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-crontab --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-crontab');
The "crontab" task
Overview
This task will set up jobs in the system crontab. The jobs are read from a file which by default is assumed to be called.crontab
and located in the same directory as the Gruntfile
.In your project's Gruntfile, add a section named
crontab
to the data object passed into grunt.initConfig()
.grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
crontab: {
dev: {
namespace: '<%= pkg.name %>' + '.dev' , // this would be the default anyway
cronfile: './my-crontab-dev' // override, default is '.crontab'
},
stage: {
namespace: 'my-custom-namespace'
}
},
})
This task can be run repeatedly, every time the crontab entries generated by this task will be cleaned up and recreated.
Crontab File
{
"jobs": [
{
"command": "cd <%= project.baseDir %> && echo '<%= pkg.name %>'",
"schedule": "0 7 * * *",
"comment": "A job"
},
{
"command": "bla -lha",
"schedule": "0 7 * * *",
"comment": "Another job"
}
]
}
String Substitution
Some underscore/lodash placeholders in the crontab file will be expanded. Currently supported placeholders are:| Placeholder | Meaning | |-------------|---------| |project.baseDir|Absolute path to directory where
Gruntfile
is located in|
|pkg.|Contents of package.json
, e.g. pkg.name
for project name |Options
crontab.namespace
Type:String
, default value: pkg.name
A comment starting with this string will be added to every entry created. We use this comment to identify the jobs to created by this module. Uses package name from
package.json
as default value.crontab.cronfile
Type:String
, default value: './.crontab'
Path to the file that contains the crontab entries. Format as described above.