9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/puppet-languageserver/crash_dump.rb', line 9
def self.write_crash_file(err, session_state, filename = nil, additional = {})
puppet_version = Puppet.version rescue 'Unknown'
facter_version = Facter.version rescue 'Unknown'
languageserver_version = PuppetLanguageServer.version rescue 'Unknown'
crashtext = " Puppet Language Server Crash File\n -=--=--=--=--=--=--=--=--=--=--=-\n \#{DateTime.now.strftime('%a %b %e %Y %H:%M:%S %Z')}\n Puppet Version \#{puppet_version}\n Facter Version \#{facter_version}\n Ruby Version \#{RUBY_VERSION}-p\#{RUBY_PATCHLEVEL}\n Language Server Version \#{languageserver_version}\n\n Error: \#{err}\n\n Backtrace\n ---------\n \#{err.backtrace.join(\"\\n\")}\n\n TEXT\n # Append the documents in the cache\n session_state.documents.document_uris.each do |uri|\n crashtext += \"Document - \#{uri}\\n---\\n\#{session_state.documents.document_content(uri)}\\n\\n\"\n end\n # Append additional objects from the crash\n additional.each do |k, v|\n crashtext += \"\#{k}\\n---\\n\#{v}\\n\\n\"\n end\n\n crash_file = filename.nil? ? default_crash_file : filename\n File.binwrite(crash_file, crashtext)\nrescue # rubocop:disable Style/RescueStandardError\n # Swallow all errors. Errors in the error handler should not\n # terminate the application\nend\n"
|