FIX: Show a useful message when starting a plugin fails without a backtrace

This commit is contained in:
Daniel Waterworth 2020-05-19 14:03:54 +01:00
parent 7c3663ff73
commit b4c5ff17a3
1 changed files with 32 additions and 21 deletions

View File

@ -6,6 +6,7 @@ def plugin_initialization_guard(&block)
rescue => error rescue => error
plugins_directory = Rails.root + 'plugins' plugins_directory = Rails.root + 'plugins'
if error.backtrace
plugin_path = error.backtrace_locations.lazy.map do |location| plugin_path = error.backtrace_locations.lazy.map do |location|
Pathname.new(location.absolute_path) Pathname.new(location.absolute_path)
.ascend .ascend
@ -33,6 +34,16 @@ def plugin_initialization_guard(&block)
Please try removing this plugin and rebuilding again! Please try removing this plugin and rebuilding again!
MESSAGE MESSAGE
else
STDERR.puts <<~MESSAGE
** PLUGIN FAILURE **
You are unable to build Discourse due to this error during plugin
initialization:
#{error}
MESSAGE
end
exit 1 exit 1
end end
end end