57 lines
2.2 KiB
Ruby
57 lines
2.2 KiB
Ruby
desc "Generates error pages"
|
|
task generate_error_pages: :environment do
|
|
# unless Rails.env.production?
|
|
# puts "Skipping generate_error_pages page generation outside production"
|
|
# next
|
|
# end
|
|
|
|
Rails.application.config.action_controller.perform_caching = false
|
|
pages = {
|
|
"error_pages/bad_request" => "400.html",
|
|
"error_pages/unauthorized" => "401.html",
|
|
"error_pages/payment_required" => "402.html",
|
|
"error_pages/forbidden" => "403.html",
|
|
"error_pages/not_found" => "404.html",
|
|
"error_pages/method_not_allowed" => "405.html",
|
|
"error_pages/not_acceptable" => "406.html",
|
|
"error_pages/proxy_authentication_required" => "407.html",
|
|
"error_pages/request_timeout" => "408.html",
|
|
"error_pages/conflict" => "409.html",
|
|
"error_pages/gone" => "410.html",
|
|
"error_pages/length_required" => "411.html",
|
|
"error_pages/precondition_failed" => "412.html",
|
|
"error_pages/payload_too_large" => "413.html",
|
|
"error_pages/uri_too_long" => "414.html",
|
|
"error_pages/unsupported_media_type" => "415.html",
|
|
"error_pages/range_not_satisfiable" => "416.html",
|
|
"error_pages/expectation_failed" => "417.html",
|
|
"error_pages/unprocessable_entity" => "422.html",
|
|
"error_pages/locked" => "423.html",
|
|
"error_pages/failed_dependency" => "424.html",
|
|
"error_pages/upgrade_required" => "426.html",
|
|
|
|
"error_pages/internal_server_error" => "500.html",
|
|
"error_pages/not_implemented" => "501.html",
|
|
"error_pages/bad_gateway" => "502.html",
|
|
"error_pages/service_unavailable" => "503.html",
|
|
"error_pages/gateway_timeout" => "504.html",
|
|
"error_pages/http_version_not_supported" => "505.html",
|
|
"error_pages/insufficient_storage" => "507.html",
|
|
"error_pages/not_extended" => "510.html"
|
|
}
|
|
|
|
pages.each do |page, output|
|
|
puts "Generating #{output}..."
|
|
outpath = Rails.root.join("public", output)
|
|
renderer = ApplicationController.renderer.new(http_host: ENV.fetch("APP_HOST") { "jwa11y.top" }, https: true)
|
|
html = renderer.render(template: page, layout: "layouts/errors")
|
|
if html.present?
|
|
File.delete(outpath) if File.exist?(outpath)
|
|
File.open(outpath, "w") do |f|
|
|
f.write(html)
|
|
end
|
|
else
|
|
puts "Error generating #{output}!"
|
|
end
|
|
end
|
|
end
|