From c129ffeead28f966d1d730a4f6a161d153458af7 Mon Sep 17 00:00:00 2001 From: Nathan Weizenbaum Date: Sun, 24 Jan 2010 13:43:49 -0800 Subject: [PATCH] [Sass] Intelligently detect errors in --update/--watch usage. --- lib/haml/exec.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/haml/exec.rb b/lib/haml/exec.rb index 55a018ce..48998229 100644 --- a/lib/haml/exec.rb +++ b/lib/haml/exec.rb @@ -319,7 +319,15 @@ END ::Sass::Plugin.on_creating_directory {|dirname| puts_action :directory, :green, dirname} ::Sass::Plugin.on_deleting_css {|filename| puts_action :delete, :yellow, filename} ::Sass::Plugin.on_compilation_error do |error, _, _| - raise error unless error.is_a?(::Sass::SyntaxError) + unless error.is_a?(::Sass::SyntaxError) + if error.is_a?(Errno::ENOENT) && error.message =~ /^No such file or directory - (.*)$/ && $1 == @args[1] + flag = @options[:update] ? "--update" : "--watch" + error.message << "\n Did you mean: sass #{flag} #{@args[0]}:#{@args[1]}" + end + + raise error + end + puts_action :error, :red, "#{error.sass_filename} (Line #{error.sass_line}: #{error.message})" end