greenhat 0.5.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/greenhat/accessors/disk.rb +1 -1
  3. data/lib/greenhat/archive.rb +2 -0
  4. data/lib/greenhat/cli.rb +12 -2
  5. data/lib/greenhat/entrypoint.rb +36 -33
  6. data/lib/greenhat/host.rb +1 -1
  7. data/lib/greenhat/logbot.rb +1 -1
  8. data/lib/greenhat/paper/flag_helper.rb +18 -0
  9. data/lib/greenhat/paper/paper_helper.rb +118 -0
  10. data/lib/greenhat/paper.rb +34 -0
  11. data/lib/greenhat/reports/builder.rb +98 -0
  12. data/lib/greenhat/reports/helpers.rb +101 -0
  13. data/lib/greenhat/reports/internal_methods.rb +156 -0
  14. data/lib/greenhat/reports/reports/errors.rb +51 -0
  15. data/lib/greenhat/reports/reports/faststats.rb +42 -0
  16. data/lib/greenhat/reports/reports/full.rb +143 -0
  17. data/lib/greenhat/reports/runner.rb +58 -0
  18. data/lib/greenhat/reports/shared.rb +37 -0
  19. data/lib/greenhat/reports/shell_helper.rb +34 -0
  20. data/lib/greenhat/reports.rb +79 -0
  21. data/lib/greenhat/settings.rb +6 -1
  22. data/lib/greenhat/shell/args.rb +9 -9
  23. data/lib/greenhat/shell/color_string.rb +1 -1
  24. data/lib/greenhat/shell/faststats.rb +24 -5
  25. data/lib/greenhat/shell/field_helper.rb +1 -1
  26. data/lib/greenhat/shell/filter_help.rb +36 -189
  27. data/lib/greenhat/shell/log.rb +28 -16
  28. data/lib/greenhat/shell/markdown.rb +355 -352
  29. data/lib/greenhat/shell/process.rb +11 -5
  30. data/lib/greenhat/shell/query.rb +184 -28
  31. data/lib/greenhat/shell/report.rb +415 -412
  32. data/lib/greenhat/shell/reports.rb +41 -0
  33. data/lib/greenhat/shell/shell_helper.rb +172 -117
  34. data/lib/greenhat/shell.rb +13 -2
  35. data/lib/greenhat/thing/file_types.rb +38 -2
  36. data/lib/greenhat/thing/formatters/clean_raw.rb +1 -1
  37. data/lib/greenhat/thing/formatters/exporters.rb +48 -0
  38. data/lib/greenhat/thing/formatters/identify_db.rb +32 -0
  39. data/lib/greenhat/thing/formatters/runner_log.rb +70 -0
  40. data/lib/greenhat/thing/formatters/table.rb +15 -1
  41. data/lib/greenhat/thing/formatters/time_json.rb +12 -1
  42. data/lib/greenhat/thing/kind.rb +1 -1
  43. data/lib/greenhat/thing.rb +1 -0
  44. data/lib/greenhat/version.rb +1 -1
  45. data/lib/greenhat.rb +6 -8
  46. metadata +33 -4
  47. data/lib/greenhat/pry_helpers.rb +0 -51
  48. data/lib/greenhat/thing/super_log.rb +0 -1
@@ -10,10 +10,21 @@ module GreenHat
10
10
  self.result = raw.map do |row|
11
11
  time, msg = row.split(' ', 2)
12
12
 
13
- result = Oj.load msg
13
+ # Be mo fault tolerant
14
+ result = begin
15
+ Oj.load msg
16
+ rescue StandardError
17
+ { msg: msg }
18
+ end
19
+
14
20
  result.time = time
15
21
 
16
22
  result
23
+ rescue StandardError => e
24
+ # TODO: Background Logger?
25
+ e.message
26
+ LogBot.warn('Time JSON Parse', e.message)
27
+ next
17
28
  end
18
29
  end
19
30
  # ==========================================================================
@@ -84,7 +84,7 @@ module GreenHat
84
84
  option = prompt.select('Wat is this?', prompt_list.keys.sort_by(&:length), filter: true)
85
85
 
86
86
  # Store for later
87
- ThingHistory.add(name, option)
87
+ ThingHistory.add(name.to_sym, option)
88
88
 
89
89
  self.type = option
90
90
  end
@@ -143,6 +143,7 @@ class Thing < Teron
143
143
  self.log = true
144
144
  self.parsed = true
145
145
  self.type = 'json'
146
+ self.kind = :json
146
147
  self.result_fields = field_processing
147
148
  save!
148
149
  end
@@ -1,3 +1,3 @@
1
1
  module GreenHat
2
- VERSION = '0.5.0'.freeze
2
+ VERSION = '0.6.2'.freeze
3
3
  end
data/lib/greenhat.rb CHANGED
@@ -24,6 +24,7 @@ require 'tty-table'
24
24
  require 'tty-which'
25
25
  require 'warning'
26
26
  require 'ruby_native_statistics'
27
+ require 'gitlab_chronic_duration'
27
28
 
28
29
  # Custom Gem
29
30
  require 'teron'
@@ -54,8 +55,12 @@ require 'greenhat/logbot'
54
55
  require 'greenhat/settings'
55
56
  require 'greenhat/color'
56
57
 
58
+ # Printer Helpers
59
+ require 'greenhat/paper/paper_helper'
60
+ require 'greenhat/paper/flag_helper'
61
+ require 'greenhat/paper'
62
+
57
63
  # Formatters - Loads Required Files Automatically
58
- require 'greenhat/thing/super_log'
59
64
  require 'greenhat/thing/file_types'
60
65
  require 'greenhat/thing/kind'
61
66
  require 'greenhat/thing/history'
@@ -68,14 +73,7 @@ require 'greenhat/thing'
68
73
  # Shell - Loads Required Files Automatically
69
74
  require 'greenhat/shell'
70
75
 
71
- # TODO: Confirm
72
- # require 'greenhat/host'
73
- # require 'greenhat/web'
74
-
75
- require 'greenhat/pry_helpers'
76
-
77
76
  ## TTY Shims
78
-
79
77
  require 'greenhat/tty/line'
80
78
  require 'greenhat/tty/reader'
81
79
  require 'greenhat/tty/custom_line'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: greenhat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davin Walker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-03 00:00:00.000000000 Z
11
+ date: 2022-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
@@ -164,6 +164,20 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: '2.7'
167
+ - !ruby/object:Gem::Dependency
168
+ name: gitlab_chronic_duration
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.10.6
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 0.10.6
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: hash_dot
169
183
  requirement: !ruby/object:Gem::Requirement
@@ -454,7 +468,19 @@ files:
454
468
  - lib/greenhat/entrypoint.rb
455
469
  - lib/greenhat/host.rb
456
470
  - lib/greenhat/logbot.rb
457
- - lib/greenhat/pry_helpers.rb
471
+ - lib/greenhat/paper.rb
472
+ - lib/greenhat/paper/flag_helper.rb
473
+ - lib/greenhat/paper/paper_helper.rb
474
+ - lib/greenhat/reports.rb
475
+ - lib/greenhat/reports/builder.rb
476
+ - lib/greenhat/reports/helpers.rb
477
+ - lib/greenhat/reports/internal_methods.rb
478
+ - lib/greenhat/reports/reports/errors.rb
479
+ - lib/greenhat/reports/reports/faststats.rb
480
+ - lib/greenhat/reports/reports/full.rb
481
+ - lib/greenhat/reports/runner.rb
482
+ - lib/greenhat/reports/shared.rb
483
+ - lib/greenhat/reports/shell_helper.rb
458
484
  - lib/greenhat/settings.rb
459
485
  - lib/greenhat/shell.rb
460
486
  - lib/greenhat/shell/args.rb
@@ -478,6 +504,7 @@ files:
478
504
  - lib/greenhat/shell/process.rb
479
505
  - lib/greenhat/shell/query.rb
480
506
  - lib/greenhat/shell/report.rb
507
+ - lib/greenhat/shell/reports.rb
481
508
  - lib/greenhat/shell/shell_helper.rb
482
509
  - lib/greenhat/thing.rb
483
510
  - lib/greenhat/thing/file_types.rb
@@ -486,10 +513,12 @@ files:
486
513
  - lib/greenhat/thing/formatters/clean_raw.rb
487
514
  - lib/greenhat/thing/formatters/colon_split_strip.rb
488
515
  - lib/greenhat/thing/formatters/dotenv.rb
516
+ - lib/greenhat/thing/formatters/exporters.rb
489
517
  - lib/greenhat/thing/formatters/format.rb
490
518
  - lib/greenhat/thing/formatters/free_m.rb
491
519
  - lib/greenhat/thing/formatters/gitlab_ctl_tail.rb
492
520
  - lib/greenhat/thing/formatters/gitlab_status.rb
521
+ - lib/greenhat/thing/formatters/identify_db.rb
493
522
  - lib/greenhat/thing/formatters/json.rb
494
523
  - lib/greenhat/thing/formatters/json_shellwords.rb
495
524
  - lib/greenhat/thing/formatters/kube_json.rb
@@ -499,6 +528,7 @@ files:
499
528
  - lib/greenhat/thing/formatters/nginx.rb
500
529
  - lib/greenhat/thing/formatters/raw.rb
501
530
  - lib/greenhat/thing/formatters/registry.rb
531
+ - lib/greenhat/thing/formatters/runner_log.rb
502
532
  - lib/greenhat/thing/formatters/shellwords.rb
503
533
  - lib/greenhat/thing/formatters/syslog.rb
504
534
  - lib/greenhat/thing/formatters/table.rb
@@ -510,7 +540,6 @@ files:
510
540
  - lib/greenhat/thing/info_format.rb
511
541
  - lib/greenhat/thing/kind.rb
512
542
  - lib/greenhat/thing/spinner.rb
513
- - lib/greenhat/thing/super_log.rb
514
543
  - lib/greenhat/tty/columns.rb
515
544
  - lib/greenhat/tty/custom_line.rb
516
545
  - lib/greenhat/tty/line.rb
@@ -1,51 +0,0 @@
1
- def show(data)
2
- pastel = Pastel.new
3
- TTY::Pager.page do |pager|
4
- data.each do |e|
5
- table = TTY::Table.new(header: e.keys, rows: [e], orientation: :vertical)
6
- # do some work with the line
7
-
8
- output = table.render(:unicode, multiline: false) do |renderer|
9
- renderer.border.style = :cyan
10
- # renderer.filter = ->(val, row_index, col_index) do
11
- # val.ai
12
- # end
13
-
14
- renderer.filter = lambda { |val, _row_index, col_index|
15
- puts val.class unless val.instance_of? String
16
- if col_index == 1
17
- if val.numeric?
18
- pastel.red.blue(val)
19
- else
20
- val
21
- end
22
- else
23
- val
24
- end
25
- # .ai(raw: true).gsub('"','')
26
- }
27
- end
28
-
29
- pager.write("\n#{output}") # write line to the pager
30
- end
31
- end
32
- end
33
-
34
- def filter(data, params = {})
35
- result = data.clone
36
- params.each do |k, v|
37
- result.select! do |row|
38
- if row.key? k.to_sym
39
- row[k.to_sym].include? v
40
- else
41
- false
42
- end
43
- end
44
- end
45
-
46
- result
47
- end
48
-
49
- def version
50
- Thing.find_by(name: 'gitlab_version_manifest_json').data.build_version
51
- end
@@ -1 +0,0 @@
1
-