From fc4ac70342824c703bf09da91c8fceb0ed2d9625 Mon Sep 17 00:00:00 2001 From: Chelsea Robb Date: Wed, 19 Dec 2012 09:32:51 +1100 Subject: [PATCH] Add support for @reboot to cron module --- library/cron | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/library/cron b/library/cron index 177c427080b..04482cafa65 100644 --- a/library/cron +++ b/library/cron @@ -98,11 +98,22 @@ options: required: false default: "*" aliases: [] + + reboot: + description: + - If the job should be run at reboot, will ignore minute, hour, day, and month settings in favour of @reboot + required: false + default: False + aliases: [] + examples: - code: 'cron: name="check dirs" hour="5,2" job="ls -alh > /dev/null"' description: Ensure a job that runs at 2 and 5 exists. Creates an entry like "* 5,2 * * ls -alh > /dev/null" - code: 'cron: name="an old job" cron job="/some/dir/job.sh" state=absent' description: 'Ensure an old job is no longer present. Removes any job that is preceded by "#Ansible: an old job" in the crontab' + - code: 'cron: name="a job for reboot" reboot=True job="/some/job.sh"' + description: 'Creates an entry like '@reboot /some/job.sh' + requirements: cron author: Dane Summers ''' @@ -221,7 +232,8 @@ def main(): hour=dict(default='*'), day=dict(default='*'), month=dict(default='*'), - weekday=dict(default='*') + weekday=dict(default='*'), + reboot=dict(required=False, default=False) ) ) @@ -234,9 +246,13 @@ def main(): day = module.params['day'] month = module.params['month'] weekday = module.params['weekday'] + reboot = module.params['reboot'] do_install = module.params['state'] == 'present' changed = False - job = "%s %s %s %s %s %s" % (minute,hour,day,month,weekday,job) + if reboot: + job = "@reboot %s" % (job) + else: + job = "%s %s %s %s %s %s" % (minute,hour,day,month,weekday,job) if not user: user = "" @@ -288,3 +304,4 @@ def main(): # include magic from lib/ansible/module_common.py #<> main() +