summaryrefslogtreecommitdiff
path: root/lib/chef/application.rb
diff options
context:
space:
mode:
authordanielsdeleo <dan@opscode.com>2013-10-14 16:53:47 -0700
committerdanielsdeleo <dan@opscode.com>2013-10-16 13:53:37 -0700
commit3daf72e03219ef19fe941df32b5aef9ddea1f091 (patch)
tree6b4c9a1cbf2e94dbfd62e17fc65d517c2b514f86 /lib/chef/application.rb
parent1108f332624b2eb138677ec55110162f8de9a208 (diff)
downloadchef-3daf72e03219ef19fe941df32b5aef9ddea1f091.tar.gz
Make configuration errors more informative
Diffstat (limited to 'lib/chef/application.rb')
-rw-r--r--lib/chef/application.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/chef/application.rb b/lib/chef/application.rb
index d6c3a028f5..9be238604e 100644
--- a/lib/chef/application.rb
+++ b/lib/chef/application.rb
@@ -217,10 +217,11 @@ class Chef::Application
def apply_config(config_content, config_file_path)
Chef::Config.from_string(config_content, config_file_path)
- rescue Chef::Exceptions::ConfigurationError => error
- Chef::Application.fatal!("Error processing config file #{config_file_path} with error #{error.message}", 2)
rescue Exception => error
- Chef::Application.fatal!("Unknown error processing config file #{config_file_path} with error #{error.message}", 2)
+ Chef::Log.fatal("Configuration error #{error.class}: #{error.message}")
+ filtered_trace = error.backtrace.grep(/#{Regexp.escape(config_file_path)}/)
+ filtered_trace.each {|line| Chef::Log.fatal(" " + line + "\n")}
+ Chef::Application.fatal!("Aborting due to error in '#{config_file_path}'", 2)
end
class << self