Grunt plugin to update system crontab
npm install grunt-crontabGrunt plugin to update system crontab
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:
``shell`
npm install grunt-crontab --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
`js`
grunt.loadNpmTasks('grunt-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().`js
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.
$3
`json
{
"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 |$3
#### crontab.namespace
Type:
String, default value: pkg.nameA 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.