greenhat 0.3.6 → 0.4.0
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.
- checksums.yaml +4 -4
- data/bin/greenhat +1 -4
- data/lib/greenhat/archive.rb +8 -6
- data/lib/greenhat/cli.rb +24 -163
- data/lib/greenhat/entrypoint.rb +170 -0
- data/lib/greenhat/settings.rb +6 -0
- data/lib/greenhat/shell/shell_helper.rb +12 -4
- data/lib/greenhat/shell.rb +3 -3
- data/lib/greenhat/thing/file_types.rb +10 -1
- data/lib/greenhat/thing/kind.rb +5 -0
- data/lib/greenhat/thing.rb +1 -0
- data/lib/greenhat/version.rb +1 -1
- data/lib/greenhat.rb +1 -0
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4205de8b256423c08291a212511d4d6ecd613d21f232d0d6b4641881779f1303
|
4
|
+
data.tar.gz: 695ce3fb852d8a3167b853b3b8c07448f031305e51072f34e7afb3aed75ca50e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d4653882946a783ddc0e11094205e42b33338afe53334cc9774956047a1b00eb54bca964925efbed47ca4c410e5007d6e5ac79f10376274b50beb1ffaedc8f0
|
7
|
+
data.tar.gz: c2002b0458b334799e4b04a446a9ca0193091f264e7077b9eac84c310423e6c0547d79094da45fa5fa9ce475d110756952602d3274b34f97b4162e7ee4226871
|
data/bin/greenhat
CHANGED
data/lib/greenhat/archive.rb
CHANGED
@@ -7,7 +7,7 @@ module GreenHat
|
|
7
7
|
Dir.mkdir path
|
8
8
|
|
9
9
|
# Initially Copy file into tmpdir
|
10
|
-
FileUtils.
|
10
|
+
FileUtils.cp_r(archive_path.to_s, "#{path}/")
|
11
11
|
|
12
12
|
# Extract Everything
|
13
13
|
loop do
|
@@ -28,9 +28,6 @@ module GreenHat
|
|
28
28
|
|
29
29
|
archive = Archive.new(name: archive_path, path: path)
|
30
30
|
archive.save
|
31
|
-
# file = list[2]
|
32
|
-
# thing = archive.things_create(file: file)
|
33
|
-
# thing.setup
|
34
31
|
|
35
32
|
list.each do |file|
|
36
33
|
# Ensure Valid Content
|
@@ -54,8 +51,13 @@ module GreenHat
|
|
54
51
|
# Handle Different Types of Archives
|
55
52
|
def self.unpack(archive_path, path)
|
56
53
|
case File.extname archive_path
|
54
|
+
when '.tgz'
|
55
|
+
base_path = archive_path.gsub(File.basename(archive_path), '')
|
56
|
+
`bsdtar -xzf "#{archive_path}" -C #{base_path}`
|
57
|
+
FileUtils.rm(archive_path)
|
57
58
|
when '.tar'
|
58
|
-
|
59
|
+
base_path = archive_path.gsub(File.basename(archive_path), '')
|
60
|
+
`bsdtar -xf "#{archive_path}" -C #{base_path}`
|
59
61
|
FileUtils.rm(archive_path)
|
60
62
|
when '.gz'
|
61
63
|
`gzip -d "#{archive_path}"`
|
@@ -75,7 +77,7 @@ module GreenHat
|
|
75
77
|
end
|
76
78
|
|
77
79
|
def self.archive_types
|
78
|
-
%w[s gz tar]
|
80
|
+
%w[s gz tar tgz]
|
79
81
|
end
|
80
82
|
# -- Archive Loader ----------------------------------------------
|
81
83
|
end
|
data/lib/greenhat/cli.rb
CHANGED
@@ -1,8 +1,31 @@
|
|
1
1
|
# Top level namespace
|
2
2
|
module GreenHat
|
3
|
-
# CLI Methods
|
3
|
+
# CLI Methods / Shell Specific COmmands
|
4
4
|
# rubocop:disable Metrics/ModuleLength
|
5
5
|
module Cli
|
6
|
+
# CLI Start
|
7
|
+
def self.start
|
8
|
+
value ||= '' # Empty Start
|
9
|
+
|
10
|
+
loop do
|
11
|
+
line = reader.read_line(readline_notch, value: value)
|
12
|
+
value = '' # Remove Afterwards
|
13
|
+
|
14
|
+
if reader.breaker
|
15
|
+
value = line
|
16
|
+
puts ''
|
17
|
+
next
|
18
|
+
end
|
19
|
+
|
20
|
+
break if line =~ /^exit/i
|
21
|
+
|
22
|
+
Settings.cmd_add(line) unless line.blank?
|
23
|
+
|
24
|
+
process
|
25
|
+
run
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
6
29
|
def self.cursor
|
7
30
|
@cursor = TTY::Cursor
|
8
31
|
end
|
@@ -348,154 +371,6 @@ module GreenHat
|
|
348
371
|
@quiet = !@quiet
|
349
372
|
end
|
350
373
|
|
351
|
-
# rubocop:disable Metrics/MethodLength
|
352
|
-
def self.cli_help
|
353
|
-
Shell.version
|
354
|
-
puts
|
355
|
-
puts 'Usage'.pastel(:yellow)
|
356
|
-
puts ' greenhat <sos-archive.tgz> <sos-archive2.tgz> '
|
357
|
-
puts ' greenhat <sos-archive.tgz> -q --command=df'
|
358
|
-
puts
|
359
|
-
|
360
|
-
puts 'Options'.pastel(:yellow)
|
361
|
-
puts ' --report, -r'.pastel(:green)
|
362
|
-
puts ' Run `report` against archives and exit'
|
363
|
-
puts
|
364
|
-
|
365
|
-
puts ' --full-report, -f'.pastel(:green)
|
366
|
-
puts ' Run `report` with all details. e.g. include fast-stats top/errors'
|
367
|
-
puts
|
368
|
-
|
369
|
-
puts ' --markdown, -m'.pastel(:green)
|
370
|
-
puts ' Run `markdown_report` against archives and exit'
|
371
|
-
puts
|
372
|
-
|
373
|
-
puts ' --quiet, -r'.pastel(:green)
|
374
|
-
puts ' Surpress GreenHat logging output'
|
375
|
-
puts
|
376
|
-
|
377
|
-
puts ' --load, -l'.pastel(:green)
|
378
|
-
puts ' Automatically attempt to read/parse/preload all included files'
|
379
|
-
puts
|
380
|
-
|
381
|
-
puts ' --command, -c'.pastel(:green)
|
382
|
-
puts ' Run and then exit a GreenHat Shell command'
|
383
|
-
puts
|
384
|
-
|
385
|
-
puts ' --web, -w'.pastel(:green)
|
386
|
-
puts ' Start Sinatra Webservice on load (4567)'
|
387
|
-
puts
|
388
|
-
|
389
|
-
puts ' --no-color, -n'.pastel(:green)
|
390
|
-
puts ' Disable color output'
|
391
|
-
puts
|
392
|
-
|
393
|
-
puts ' --version, -v'.pastel(:green)
|
394
|
-
puts ' Print version and exit'
|
395
|
-
puts
|
396
|
-
end
|
397
|
-
# rubocop:enable Metrics/MethodLength
|
398
|
-
|
399
|
-
# Arguments before general processing
|
400
|
-
def self.pre_args(flags, files)
|
401
|
-
# Help
|
402
|
-
if flags?(%i[help h], flags)
|
403
|
-
cli_help
|
404
|
-
exit 0
|
405
|
-
end
|
406
|
-
|
407
|
-
# Version
|
408
|
-
if flags?(%i[version v], flags)
|
409
|
-
Shell.version
|
410
|
-
exit 0
|
411
|
-
end
|
412
|
-
|
413
|
-
# Quiet Flag
|
414
|
-
@quiet = true if flags?(%i[quiet q], flags)
|
415
|
-
|
416
|
-
# rubocop:disable Style/GuardClause
|
417
|
-
# MIA Files
|
418
|
-
if files.empty? || files.count { |x| File.exist? x }.zero?
|
419
|
-
puts "No arguments or files don't exist".pastel(:red)
|
420
|
-
puts 'Usage: greenhat <sos-archive.tgz> <sos-archive2.tgz>'
|
421
|
-
cli_help
|
422
|
-
Shell.version
|
423
|
-
end
|
424
|
-
# rubocop:enable Style/GuardClause
|
425
|
-
end
|
426
|
-
|
427
|
-
# Arguments to be handled after general processing
|
428
|
-
def self.post_args(flags)
|
429
|
-
# Supress Color
|
430
|
-
GreenHat::Settings.settings[:color] = false if flags?(%i[no-color n], flags)
|
431
|
-
|
432
|
-
# Run report and exit / Don't Clear for reports
|
433
|
-
if flags?(%i[report r], flags)
|
434
|
-
@quiet = true
|
435
|
-
# Don't Use Pagination
|
436
|
-
GreenHat::Shell.report(['--raw'])
|
437
|
-
exit 0
|
438
|
-
elsif flags?(%i[full-report f], flags)
|
439
|
-
@quiet = true
|
440
|
-
# Don't Use Pagination
|
441
|
-
GreenHat::Shell.report(['--raw', '--full'])
|
442
|
-
exit 0
|
443
|
-
elsif flags?(%i[markdown m], flags)
|
444
|
-
@quiet = true
|
445
|
-
# Don't Use Pagination
|
446
|
-
GreenHat::Shell.markdown_report(['--raw'])
|
447
|
-
exit 0
|
448
|
-
else
|
449
|
-
clear_screen
|
450
|
-
end
|
451
|
-
end
|
452
|
-
|
453
|
-
def self.post_setup(flags)
|
454
|
-
# CTL Tails need to be parsed for new 'things'
|
455
|
-
Thing.where(kind: :gitlab_tail)&.map(&:process)
|
456
|
-
Thing.where(kind: :kube_webservice)&.map(&:process)
|
457
|
-
|
458
|
-
Thing.all.each(&:process) if flags?(%i[load l], flags)
|
459
|
-
|
460
|
-
Shell.web if flags?(%i[web w], flags)
|
461
|
-
end
|
462
|
-
|
463
|
-
# Helper to Simplify checking flags
|
464
|
-
def self.flags?(list = [], flags = {})
|
465
|
-
list.any? { |x| flags.key? x }
|
466
|
-
end
|
467
|
-
|
468
|
-
# If no arguments Supplied Print and quit - rather than nasty exception
|
469
|
-
def self.start(raw)
|
470
|
-
Settings.start
|
471
|
-
files, flags, args = Args.parse(raw)
|
472
|
-
pre_args(flags, files)
|
473
|
-
load_files files
|
474
|
-
run_command(args) if args.any? { |arg| run_command?(arg) }
|
475
|
-
post_args(flags)
|
476
|
-
post_setup(flags)
|
477
|
-
|
478
|
-
value ||= '' # Empty Start
|
479
|
-
|
480
|
-
loop do
|
481
|
-
line = reader.read_line(readline_notch, value: value)
|
482
|
-
value = '' # Remove Afterwards
|
483
|
-
|
484
|
-
if reader.breaker
|
485
|
-
value = line
|
486
|
-
puts ''
|
487
|
-
next
|
488
|
-
end
|
489
|
-
|
490
|
-
break if line =~ /^exit/i
|
491
|
-
|
492
|
-
Settings.cmd_add(line) unless line.blank?
|
493
|
-
|
494
|
-
process
|
495
|
-
run
|
496
|
-
end
|
497
|
-
end
|
498
|
-
|
499
374
|
def self.run_command?(arg)
|
500
375
|
%i[command c].any? do |x|
|
501
376
|
arg[:field] == x
|
@@ -515,20 +390,6 @@ module GreenHat
|
|
515
390
|
exit 0
|
516
391
|
end
|
517
392
|
|
518
|
-
def self.load_files(files)
|
519
|
-
# TODO: Web Helpers?
|
520
|
-
# suppress_output { GreenHat::Web.start }
|
521
|
-
|
522
|
-
# Don't double up on archives / Only Existing files
|
523
|
-
puts 'Loading Archives'.pastel(:blue) unless Cli.quiet
|
524
|
-
files.uniq.each do |file|
|
525
|
-
next unless File.exist?(file)
|
526
|
-
|
527
|
-
puts "- #{file}".pastel(:magenta) unless Cli.quiet
|
528
|
-
ArchiveLoader.load file
|
529
|
-
end
|
530
|
-
end
|
531
|
-
|
532
393
|
def self.suppress_output
|
533
394
|
original_stderr = $stderr.clone
|
534
395
|
original_stdout = $stdout.clone
|
@@ -0,0 +1,170 @@
|
|
1
|
+
# Top level namespace
|
2
|
+
module GreenHat
|
3
|
+
# Entrypoint Methods
|
4
|
+
# Command Line Args / File Parsing etc
|
5
|
+
module Entrypoint
|
6
|
+
# If no arguments Supplied Print and quit - rather than nasty exception
|
7
|
+
def self.start(raw)
|
8
|
+
@clear = true # Reset screen by default
|
9
|
+
Settings.start
|
10
|
+
files, flags, args = Args.parse(raw)
|
11
|
+
pre_args(flags, files)
|
12
|
+
load_files files
|
13
|
+
Cli.run_command(args) if args.any? { |arg| Cli.run_command?(arg) }
|
14
|
+
post_args(flags)
|
15
|
+
post_setup(flags)
|
16
|
+
|
17
|
+
Cli.start # Kick over to CLI
|
18
|
+
end
|
19
|
+
|
20
|
+
# Arguments before general processing
|
21
|
+
def self.pre_args(flags, files)
|
22
|
+
# Help
|
23
|
+
if flags?(%i[help h], flags)
|
24
|
+
cli_help
|
25
|
+
exit 0
|
26
|
+
end
|
27
|
+
|
28
|
+
# Version
|
29
|
+
if flags?(%i[version v], flags)
|
30
|
+
Shell.version
|
31
|
+
exit 0
|
32
|
+
end
|
33
|
+
|
34
|
+
# Assume Raw Setting
|
35
|
+
Settings.settings[:assume_raw] = true if flags?(%i[no-prompt np], flags)
|
36
|
+
Settings.settings[:assume_raw] = false if flags?(%i[prompt p], flags)
|
37
|
+
|
38
|
+
# Quiet Flag
|
39
|
+
@quiet = true if flags?(%i[quiet q], flags)
|
40
|
+
|
41
|
+
if flags?(%i[load-local ll], flags)
|
42
|
+
# Hook in loading local
|
43
|
+
Shell.load_local(false)
|
44
|
+
elsif files.empty? || files.count { |x| File.exist? x }.zero?
|
45
|
+
# MIA Files
|
46
|
+
puts "No arguments or files don't exist".pastel(:red)
|
47
|
+
puts 'Usage: greenhat <sos-archive.tgz> <sos-archive2.tgz>'
|
48
|
+
puts 'See `--help`'
|
49
|
+
|
50
|
+
@clear = false # Don't hide messages
|
51
|
+
|
52
|
+
Shell.version
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# Arguments to be handled after general processing
|
57
|
+
def self.post_args(flags)
|
58
|
+
# Supress Color
|
59
|
+
GreenHat::Settings.settings[:color] = false if flags?(%i[no-color n], flags)
|
60
|
+
|
61
|
+
# Run report and exit / Don't Clear for reports
|
62
|
+
if flags?(%i[report r], flags)
|
63
|
+
@quiet = true
|
64
|
+
# Don't Use Pagination
|
65
|
+
GreenHat::Shell.report(['--raw'])
|
66
|
+
exit 0
|
67
|
+
elsif flags?(%i[full-report f], flags)
|
68
|
+
@quiet = true
|
69
|
+
# Don't Use Pagination
|
70
|
+
GreenHat::Shell.report(['--raw', '--full'])
|
71
|
+
exit 0
|
72
|
+
elsif flags?(%i[markdown m], flags)
|
73
|
+
@quiet = true
|
74
|
+
# Don't Use Pagination
|
75
|
+
GreenHat::Shell.markdown_report(['--raw'])
|
76
|
+
exit 0
|
77
|
+
elsif @clear
|
78
|
+
Cli.clear_screen
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.post_setup(flags)
|
83
|
+
# CTL Tails need to be parsed for new 'things'
|
84
|
+
Thing.where(kind: :gitlab_tail)&.map(&:process)
|
85
|
+
Thing.where(kind: :kube_webservice)&.map(&:process)
|
86
|
+
|
87
|
+
Thing.all.each(&:process) if flags?(%i[load l], flags)
|
88
|
+
|
89
|
+
Shell.web if flags?(%i[web w], flags)
|
90
|
+
end
|
91
|
+
|
92
|
+
# Helper to Simplify checking flags
|
93
|
+
def self.flags?(list = [], flags = {})
|
94
|
+
list.any? { |x| flags.key? x }
|
95
|
+
end
|
96
|
+
|
97
|
+
def self.load_files(files)
|
98
|
+
# Don't double up on archives / Only Existing files
|
99
|
+
puts 'Loading Archives'.pastel(:blue) unless Cli.quiet
|
100
|
+
files.uniq.each do |file|
|
101
|
+
next unless File.exist?(file)
|
102
|
+
|
103
|
+
puts "- #{file}".pastel(:magenta) unless Cli.quiet
|
104
|
+
ArchiveLoader.load file
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
# rubocop:disable Metrics/MethodLength
|
109
|
+
def self.cli_help
|
110
|
+
Shell.version
|
111
|
+
puts
|
112
|
+
puts 'Usage'.pastel(:yellow)
|
113
|
+
puts ' greenhat <sos-archive.tgz> <sos-archive2.tgz> '
|
114
|
+
puts ' greenhat <sos-archive.tgz> -q --command=df'
|
115
|
+
puts
|
116
|
+
|
117
|
+
puts 'Options'.pastel(:yellow)
|
118
|
+
puts ' --report, -r'.pastel(:green)
|
119
|
+
puts ' Run `report` against archives and exit'
|
120
|
+
puts
|
121
|
+
|
122
|
+
puts ' --full-report, -f'.pastel(:green)
|
123
|
+
puts ' Run `report` with all details. e.g. include fast-stats top/errors'
|
124
|
+
puts
|
125
|
+
|
126
|
+
puts ' --markdown, -m'.pastel(:green)
|
127
|
+
puts ' Run `markdown_report` against archives and exit'
|
128
|
+
puts
|
129
|
+
|
130
|
+
puts ' --quiet, -r'.pastel(:green)
|
131
|
+
puts ' Surpress GreenHat logging output'
|
132
|
+
puts
|
133
|
+
|
134
|
+
puts ' --load, -l'.pastel(:green)
|
135
|
+
puts ' Automatically attempt to read/parse/preload all included files'
|
136
|
+
puts
|
137
|
+
|
138
|
+
puts ' --load-local, -ll'.pastel(:green)
|
139
|
+
puts ' Load log files from locations on an Omnibus install'
|
140
|
+
puts
|
141
|
+
|
142
|
+
puts ' --prompt, -p'.pastel(:green)
|
143
|
+
puts ' Override settings / Assume Prompt'
|
144
|
+
puts
|
145
|
+
|
146
|
+
puts ' --no-prompt, -np'.pastel(:green)
|
147
|
+
puts ' Do not prompt for file types / Assume Raw or JSON'
|
148
|
+
puts
|
149
|
+
|
150
|
+
puts ' --command, -c'.pastel(:green)
|
151
|
+
puts ' Run and then exit a GreenHat Shell command'
|
152
|
+
puts
|
153
|
+
|
154
|
+
puts ' --web, -w'.pastel(:green)
|
155
|
+
puts ' Start Sinatra Webservice on load (4567)'
|
156
|
+
puts
|
157
|
+
|
158
|
+
puts ' --no-color, -n'.pastel(:green)
|
159
|
+
puts ' Disable color output'
|
160
|
+
puts
|
161
|
+
|
162
|
+
puts ' --version, -v'.pastel(:green)
|
163
|
+
puts ' Print version and exit'
|
164
|
+
puts
|
165
|
+
end
|
166
|
+
# rubocop:enable Metrics/MethodLength
|
167
|
+
|
168
|
+
# ==========================================================
|
169
|
+
end
|
170
|
+
end
|
data/lib/greenhat/settings.rb
CHANGED
@@ -6,12 +6,14 @@ module GreenHat
|
|
6
6
|
@settings ||= {
|
7
7
|
history: [],
|
8
8
|
assume_json: true,
|
9
|
+
assume_raw: false,
|
9
10
|
fuzzy_file_match: true,
|
10
11
|
|
11
12
|
# round: [2],
|
12
13
|
# page: [:true] Automatic,
|
13
14
|
truncate: TTY::Screen.width * 4,
|
14
15
|
color: true
|
16
|
+
|
15
17
|
}
|
16
18
|
end
|
17
19
|
|
@@ -19,6 +21,10 @@ module GreenHat
|
|
19
21
|
settings.assume_json
|
20
22
|
end
|
21
23
|
|
24
|
+
def self.assume_raw?
|
25
|
+
settings.assume_raw
|
26
|
+
end
|
27
|
+
|
22
28
|
# Allow for future disabling of color output
|
23
29
|
def self.color?
|
24
30
|
settings.color
|
@@ -55,12 +55,14 @@ module GreenHat
|
|
55
55
|
# Default Pager
|
56
56
|
TTY::Pager.page do |pager|
|
57
57
|
data.each do |entry|
|
58
|
-
output = entry_show(flags, entry)
|
58
|
+
output = "\n#{entry_show(flags, entry)}"
|
59
|
+
|
60
|
+
# output += "\n" if flags[:table_style] == 'basic'
|
59
61
|
|
60
62
|
# Breaks any intentional spaces
|
61
63
|
# next if output.blank?
|
62
64
|
|
63
|
-
pager.write(
|
65
|
+
pager.write(output) # write line to the pager
|
64
66
|
end
|
65
67
|
end
|
66
68
|
end
|
@@ -126,10 +128,15 @@ module GreenHat
|
|
126
128
|
table = TTY::Table.new(header: entry.keys, rows: [entry], orientation: :vertical)
|
127
129
|
|
128
130
|
LogBot.debug('Rendering Entries') if ENV['DEBUG']
|
129
|
-
table.render(table_style, padding: [0, 1, 0, 1], multiline: true) do |renderer|
|
131
|
+
output = table.render(table_style, padding: [0, 1, 0, 1], multiline: true) do |renderer|
|
130
132
|
renderer.border.style = :cyan
|
131
133
|
end
|
132
134
|
|
135
|
+
# Line breaks for basic tables
|
136
|
+
output += "\n" if flags[:table_style] == 'basic'
|
137
|
+
|
138
|
+
output
|
139
|
+
|
133
140
|
# LogBot.debug('Finish Render Table') if ENV['DEBUG']
|
134
141
|
# Fall Back to Amazing Inspect
|
135
142
|
rescue StandardError => e
|
@@ -201,7 +208,8 @@ module GreenHat
|
|
201
208
|
end
|
202
209
|
|
203
210
|
def self.calculate_duration(results)
|
204
|
-
|
211
|
+
# Skip for Pluck
|
212
|
+
only_with_time = results.select { |x| x.instance_of?(Hash) && x.key?(:time) }
|
205
213
|
|
206
214
|
# If slice is used ignore
|
207
215
|
return nil if only_with_time.empty?
|
data/lib/greenhat/shell.rb
CHANGED
@@ -30,12 +30,12 @@ module GreenHat
|
|
30
30
|
Memory.free
|
31
31
|
end
|
32
32
|
|
33
|
-
def self.load_local
|
34
|
-
return false
|
33
|
+
def self.load_local(prompt = true)
|
34
|
+
return false if prompt && !TTY::Prompt.new.yes?('Load local Omnibus GitLab Instance files?')
|
35
35
|
|
36
36
|
archive_path = "#{$TMP}/#{Time.now.to_i}_local"
|
37
37
|
Dir.mkdir(archive_path)
|
38
|
-
|
38
|
+
|
39
39
|
archive = Archive.new(name: archive_path, path: archive_path)
|
40
40
|
|
41
41
|
file_list = Dir['/var/log/gitlab/*/current'] + Dir['/var/log/gitlab/*/*.log']
|
@@ -67,7 +67,8 @@ module GreenHat
|
|
67
67
|
'etc/fstab' => {
|
68
68
|
format: :clean_raw,
|
69
69
|
pattern: [
|
70
|
-
%r{etc/fstab}
|
70
|
+
%r{etc/fstab},
|
71
|
+
/fstab/
|
71
72
|
]
|
72
73
|
},
|
73
74
|
'etc/os-release' => {
|
@@ -108,6 +109,13 @@ module GreenHat
|
|
108
109
|
%r{gitaly/@.*}
|
109
110
|
]
|
110
111
|
},
|
112
|
+
'gitaly/gitaly_hooks.log' => {
|
113
|
+
format: :shellwords,
|
114
|
+
log: true,
|
115
|
+
pattern: [
|
116
|
+
%r{gitaly/gitaly_hooks\.log}
|
117
|
+
]
|
118
|
+
},
|
111
119
|
'consul/current' => {
|
112
120
|
format: :time_space,
|
113
121
|
log: true,
|
@@ -803,6 +811,7 @@ module GreenHat
|
|
803
811
|
'gitlab-rails/production.log' => {
|
804
812
|
format: :raw,
|
805
813
|
pattern: [
|
814
|
+
/production.log/,
|
806
815
|
%r{gitlab-rails/production.log},
|
807
816
|
%r{webservice.log/production.log}
|
808
817
|
]
|
data/lib/greenhat/thing/kind.rb
CHANGED
@@ -73,6 +73,11 @@ module GreenHat
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
+
if Settings.assume_raw?
|
77
|
+
self.type = 'raw'
|
78
|
+
return true
|
79
|
+
end
|
80
|
+
|
76
81
|
puts "Unable to determine file type for #{name.pastel(:yellow)}"
|
77
82
|
puts "Use '#{'json'.pastel(:cyan)}' or '#{'raw'.pastel(:cyan)}' if there are no matches (see file_types.rb)"
|
78
83
|
|
data/lib/greenhat/thing.rb
CHANGED
data/lib/greenhat/version.rb
CHANGED
data/lib/greenhat.rb
CHANGED
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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Davin Walker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: amazing_print
|
@@ -451,6 +451,7 @@ files:
|
|
451
451
|
- lib/greenhat/archive.rb
|
452
452
|
- lib/greenhat/cli.rb
|
453
453
|
- lib/greenhat/color.rb
|
454
|
+
- lib/greenhat/entrypoint.rb
|
454
455
|
- lib/greenhat/host.rb
|
455
456
|
- lib/greenhat/logbot.rb
|
456
457
|
- lib/greenhat/pry_helpers.rb
|
@@ -549,7 +550,8 @@ files:
|
|
549
550
|
homepage: https://gitlab.com/gitlab-com/support/toolbox/greenhat
|
550
551
|
licenses:
|
551
552
|
- MIT
|
552
|
-
metadata:
|
553
|
+
metadata:
|
554
|
+
rubygems_mfa_required: 'true'
|
553
555
|
post_install_message:
|
554
556
|
rdoc_options: []
|
555
557
|
require_paths:
|
@@ -558,14 +560,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
558
560
|
requirements:
|
559
561
|
- - ">="
|
560
562
|
- !ruby/object:Gem::Version
|
561
|
-
version:
|
563
|
+
version: 3.0.0
|
562
564
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
563
565
|
requirements:
|
564
566
|
- - ">="
|
565
567
|
- !ruby/object:Gem::Version
|
566
568
|
version: '0'
|
567
569
|
requirements: []
|
568
|
-
rubygems_version: 3.
|
570
|
+
rubygems_version: 3.2.32
|
569
571
|
signing_key:
|
570
572
|
specification_version: 4
|
571
573
|
summary: GitLab SOS Tool
|