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
|
def updated_crontab
|
||||||
# Check for unopened or unclosed identifier blocks
|
# 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}'"
|
warn "[fail] Unclosed indentifier; Your crontab file contains '#{comment_open}', but no '#{comment_close}'"
|
||||||
exit(1)
|
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}'"
|
warn "[fail] Unopened indentifier; Your crontab file contains '#{comment_close}', but no '#{comment_open}'"
|
||||||
exit(1)
|
exit(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
# If an existing identier block is found, replace it with the new cron entries
|
# 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.
|
# If the existing crontab file contains backslashes they get lost going through gsub.
|
||||||
# .gsub('\\', '\\\\\\') preserves them. Go figure.
|
# .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
|
else # Otherwise, append the new cron entries after any existing ones
|
||||||
[read_crontab, whenever_cron].join("\n\n")
|
[read_crontab, whenever_cron].join("\n\n")
|
||||||
end.gsub(/\n{3,}/, "\n\n") # More than two newlines becomes just two.
|
end.gsub(/\n{3,}/, "\n\n") # More than two newlines becomes just two.
|
||||||
|
Loading…
Reference in New Issue
Block a user