164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
# File 'lib/chef-cli/policyfile/dsl.rb', line 164
def eval_policyfile(policyfile_string)
@policyfile_filename = policyfile_filename
instance_eval(policyfile_string, policyfile_filename)
validate!
self
rescue SyntaxError => e
@errors << "Invalid Ruby syntax in Policyfile '#{policyfile_filename}':\n\n#{e.message}"
rescue SignalException, SystemExit
raise
rescue Exception => e
error_message = "Evaluation of policyfile '#{policyfile_filename}' raised an exception\n"
error_message << " Exception: #{e.class.name} \"#{e}\"\n\n"
trace = filtered_bt(policyfile_filename, e)
error_message << " Relevant Code:\n"
error_message << " #{error_context(policyfile_string, policyfile_filename, e)}\n\n"
unless trace.empty?
error_message << " Backtrace:\n"
error_message << filtered_bt(policyfile_filename, e).inject("") { |formatted_trace, line| formatted_trace << " #{line}\n" }
end
@errors << error_message
end
|