def print_error(error)
$stderr.puts
$stderr.puts "Captain! We’ve been hit!".make_compatible_with_env
$stderr.puts
$stderr.puts '=== MESSAGE:'
$stderr.puts
$stderr.puts "#{error.class}: #{error.message}"
resolution = self.resolution_for(error)
$stderr.puts "#{resolution}" if resolution
$stderr.puts
$stderr.puts '=== COMPILATION STACK:'
$stderr.puts
if self.stack.empty?
$stderr.puts " (empty)"
else
self.stack.reverse.each do |obj|
if obj.is_a?(Nanoc::ItemRep)
$stderr.puts " - [item] #{obj.item.identifier} (rep #{obj.name})"
else
$stderr.puts " - [layout] #{obj.identifier}"
end
end
end
$stderr.puts
$stderr.puts '=== BACKTRACE:'
$stderr.puts
$stderr.puts error.backtrace.to_enum(:each_with_index).map { |item, index| " #{index}. #{item}" }.join("\n")
$stderr.puts
$stderr.puts '=== VERSION INFORMATION:'
$stderr.puts
$stderr.puts Nanoc.version_information
$stderr.puts
$stderr.puts "If you believe this is a bug in nanoc, please do report it at"
$stderr.puts "<https://github.com/ddfreyne/nanoc/issues/new>--thanks!"
end