Require that the comment identifiers are always on a line by themselves, but allow for whitespace after the identifier.
This commit is contained in:
parent
971854528b
commit
3cf92a44c2
@ -89,19 +89,19 @@ module Whenever
|
||||
|
||||
def updated_crontab
|
||||
# Check for unopened or unclosed identifier blocks
|
||||
if read_crontab =~ Regexp.new("^#{comment_open}$") && (read_crontab =~ Regexp.new("^#{comment_close}")).nil?
|
||||
if read_crontab =~ Regexp.new("^#{comment_open}\s*$") && (read_crontab =~ Regexp.new("^#{comment_close}\s*$")).nil?
|
||||
warn "[fail] Unclosed indentifier; Your crontab file contains '#{comment_open}', but no '#{comment_close}'"
|
||||
exit(1)
|
||||
elsif (read_crontab =~ Regexp.new("^#{comment_open}$")).nil? && read_crontab =~ Regexp.new("^#{comment_close}")
|
||||
elsif (read_crontab =~ Regexp.new("^#{comment_open}\s*$")).nil? && read_crontab =~ Regexp.new("^#{comment_close}\s*$")
|
||||
warn "[fail] Unopened indentifier; Your crontab file contains '#{comment_close}', but no '#{comment_open}'"
|
||||
exit(1)
|
||||
end
|
||||
|
||||
# If an existing identier block is found, replace it with the new cron entries
|
||||
if read_crontab =~ Regexp.new("^#{comment_open}$") && read_crontab =~ Regexp.new("^#{comment_close}$")
|
||||
if read_crontab =~ Regexp.new("^#{comment_open}\s*$") && read_crontab =~ Regexp.new("^#{comment_close}\s*$")
|
||||
# If the existing crontab file contains backslashes they get lost going through gsub.
|
||||
# .gsub('\\', '\\\\\\') preserves them. Go figure.
|
||||
read_crontab.gsub(Regexp.new("^#{comment_open}$.+^#{comment_close}$", Regexp::MULTILINE), whenever_cron.chomp.gsub('\\', '\\\\\\'))
|
||||
read_crontab.gsub(Regexp.new("^#{comment_open}\s*$.+^#{comment_close}\s*$", Regexp::MULTILINE), whenever_cron.chomp.gsub('\\', '\\\\\\'))
|
||||
else # Otherwise, append the new cron entries after any existing ones
|
||||
[read_crontab, whenever_cron].join("\n\n")
|
||||
end.gsub(/\n{3,}/, "\n\n") # More than two newlines becomes just two.
|
||||
|
Loading…
Reference in New Issue
Block a user