diff --git a/lib/discourse.rb b/lib/discourse.rb index 8f621b838c538e..d681ddb2ddec83 100644 --- a/lib/discourse.rb +++ b/lib/discourse.rb @@ -105,6 +105,8 @@ class CSRF < StandardError; end class Deprecation < StandardError; end + class ScssError < StandardError; end + def self.filters @filters ||= [:latest, :unread, :new, :read, :posted, :bookmarks] end diff --git a/lib/stylesheet/compiler.rb b/lib/stylesheet/compiler.rb index 8cba8e677bc05b..9f7b3b9bb0bf98 100644 --- a/lib/stylesheet/compiler.rb +++ b/lib/stylesheet/compiler.rb @@ -6,16 +6,6 @@ module Stylesheet class Compiler - def self.error_as_css(error, label) - error = error.message - error.gsub!("\n", '\A ') - error.gsub!("'", '\27 ') - - "#main { display: none; } - body { white-space: pre; } - body:before { font-family: monospace; content: '#{error}' }" - end - def self.compile_asset(asset, options = {}) if Importer.special_imports[asset.to_s] diff --git a/lib/stylesheet/manager.rb b/lib/stylesheet/manager.rb index 7beded7f1b28f9..0a77196e34d0cf 100644 --- a/lib/stylesheet/manager.rb +++ b/lib/stylesheet/manager.rb @@ -166,15 +166,11 @@ def compile(opts = {}) source_map_file: source_map_filename ) rescue SassC::SyntaxError => e - - # we do not need this reported as we will report it in the UI anyway - Rails.logger.info "Failed to compile #{@target} stylesheet: #{e.message}" - if %w{embedded_theme mobile_theme desktop_theme}.include?(@target.to_s) # no special errors for theme, handled in theme editor ["", nil] else - [Stylesheet::Compiler.error_as_css(e, "#{@target} stylesheet"), nil] + raise Discourse::ScssError, e.message end end diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake index 8575ca11dc9cfe..0e2c6525dfe1cc 100644 --- a/lib/tasks/assets.rake +++ b/lib/tasks/assets.rake @@ -58,7 +58,8 @@ task 'assets:precompile:css' => 'environment' do STDERR.puts "Compiling css for #{db} #{Time.zone.now}" begin Stylesheet::Manager.precompile_css - rescue => PG::UndefinedColumn + rescue PG::UndefinedColumn => e + STDERR.puts "#{e.class} #{e.message}: #{e.backtrace.join("\n")}" STDERR.puts "Skipping precompilation of CSS cause schema is old, you are precompiling prior to running migrations." end end