forked from ungleich-public/cdist
		
	add support for crontab EXTENSIONS, e.g. @reboot
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								53ca7e7aca
							
						
					
				
			
			
				commit
				
					
						1ea0ea0b1b
					
				
			
		
					 3 changed files with 23 additions and 35 deletions
				
			
		| 
						 | 
					@ -35,14 +35,22 @@ month::
 | 
				
			||||||
   See crontab(5). Defaults to *
 | 
					   See crontab(5). Defaults to *
 | 
				
			||||||
day_of_week::
 | 
					day_of_week::
 | 
				
			||||||
   See crontab(5). Defaults to *
 | 
					   See crontab(5). Defaults to *
 | 
				
			||||||
 | 
					special::
 | 
				
			||||||
 | 
					   See EXTENSIONS in crontab(5). e.g. reboot, yearly, monthly
 | 
				
			||||||
 | 
					   If given all other time and date fields are ignored.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXAMPLES
 | 
					EXAMPLES
 | 
				
			||||||
--------
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
--------------------------------------------------------------------------------
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
# add cronjob
 | 
					# run Monday to Saturday at 23:15
 | 
				
			||||||
__cron some-id --user root --command "/path/to/script"
 | 
					__cron some-id --user root --command "/path/to/script" \
 | 
				
			||||||
 | 
					   --hour 23 --minute 15 --day_of_week 1-6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# run on reboot
 | 
				
			||||||
 | 
					__cron some-id --user root --command "/path/to/script" \
 | 
				
			||||||
 | 
					   --special reboot
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# remove cronjob
 | 
					# remove cronjob
 | 
				
			||||||
__cron some-id --user root --command "/path/to/script" --state absent
 | 
					__cron some-id --user root --command "/path/to/script" --state absent
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,44 +23,23 @@ user="$(cat "$__object/parameter/user")"
 | 
				
			||||||
command="$(cat "$__object/parameter/command")"
 | 
					command="$(cat "$__object/parameter/command")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# set defaults
 | 
					# set defaults
 | 
				
			||||||
if [ ! -f "$__object/parameter/state" ]; then
 | 
					test -f "$__object/parameter/state" || echo "present" > "$__object/parameter/state"
 | 
				
			||||||
   echo "present" > "$__object/parameter/state"
 | 
					
 | 
				
			||||||
fi
 | 
					if [ -f "$__object/parameter/special" ]; then
 | 
				
			||||||
if [ -f "$__object/parameter/minute" ]; then
 | 
					   special="$(cat "$__object/parameter/special")"
 | 
				
			||||||
   minute="$(cat "$__object/parameter/minute")"
 | 
					   entry="@$special $command"
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
   minute="*"
 | 
					   minute="$(cat "$__object/parameter/minute" 2>/dev/null || echo "*")"
 | 
				
			||||||
   echo "$minute" > "$__object/parameter/minute"
 | 
					   hour="$(cat "$__object/parameter/hour" 2>/dev/null || echo "*")"
 | 
				
			||||||
fi
 | 
					   day_of_month="$(cat "$__object/parameter/day_of_month" 2>/dev/null || echo "*")"
 | 
				
			||||||
if [ -f "$__object/parameter/hour" ]; then
 | 
					   month="$(cat "$__object/parameter/month" 2>/dev/null || echo "*")"
 | 
				
			||||||
   hour="$(cat "$__object/parameter/hour")"
 | 
					   day_of_week="$(cat "$__object/parameter/day_of_week" 2>/dev/null || echo "*")"
 | 
				
			||||||
else
 | 
					   entry="$minute $hour $day_of_month $month $day_of_week $command"
 | 
				
			||||||
   hour="*"
 | 
					 | 
				
			||||||
   echo "$hour" > "$__object/parameter/hour"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
if [ -f "$__object/parameter/day_of_month" ]; then
 | 
					 | 
				
			||||||
   day_of_month="$(cat "$__object/parameter/day_of_month")"
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
   day_of_month="*"
 | 
					 | 
				
			||||||
   echo "$day_of_month" > "$__object/parameter/day_of_month"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
if [ -f "$__object/parameter/month" ]; then
 | 
					 | 
				
			||||||
   month="$(cat "$__object/parameter/month")"
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
   month="*"
 | 
					 | 
				
			||||||
   echo "$month" > "$__object/parameter/month"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
if [ -f "$__object/parameter/day_of_week" ]; then
 | 
					 | 
				
			||||||
   day_of_week="$(cat "$__object/parameter/day_of_week")"
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
   day_of_week="*"
 | 
					 | 
				
			||||||
   echo "$day_of_week" > "$__object/parameter/day_of_week"
 | 
					 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# NOTE: if changed, also change in explorers
 | 
					# NOTE: if changed, also change in explorers
 | 
				
			||||||
prefix="#cdist:__cron/$name"
 | 
					prefix="#cdist:__cron/$name"
 | 
				
			||||||
suffix="#/cdist:__cron/$name"
 | 
					suffix="#/cdist:__cron/$name"
 | 
				
			||||||
echo "$prefix" | tee "$__object/parameter/prefix" > "$__object/parameter/entry"
 | 
					echo "$prefix" | tee "$__object/parameter/prefix" > "$__object/parameter/entry"
 | 
				
			||||||
echo "$minute $hour $day_of_month $month $day_of_week $command" >> "$__object/parameter/entry"
 | 
					echo "$entry" >> "$__object/parameter/entry"
 | 
				
			||||||
echo "$suffix" | tee "$__object/parameter/suffix" >> "$__object/parameter/entry"
 | 
					echo "$suffix" | tee "$__object/parameter/suffix" >> "$__object/parameter/entry"
 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,3 +4,4 @@ hour
 | 
				
			||||||
day_of_month
 | 
					day_of_month
 | 
				
			||||||
month
 | 
					month
 | 
				
			||||||
day_of_week
 | 
					day_of_week
 | 
				
			||||||
 | 
					special
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue