def write_crontab(crontab)
tempcron = Tempfile.new("chef-cron")
tempcron << crontab
tempcron.flush
tempcron.chmod(0644)
exit_status = 0
error_message = ""
begin
crontab_write = shell_out("/usr/bin/crontab", tempcron.path, user: @new_resource.user)
stderr = crontab_write.stderr
exit_status = crontab_write.status.exitstatus
if stderr && stderr.include?("errors detected in input, no crontab file generated")
error_message = stderr
exit_status = 1
end
rescue Chef::Exceptions::Exec => e
logger.trace(e.message)
exit_status = 1
error_message = e.message
rescue ArgumentError => e
logger.trace(e.message)
exit_status = 1
error_message = e.message
end
tempcron.close!
if exit_status > 0
raise Chef::Exceptions::Cron, "Error updating state of #{@new_resource.name}, exit: #{exit_status}, message: #{error_message}"
end
end