greenhat 0.2.0 → 0.3.3
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/lib/greenhat/accessors/disk.rb +13 -13
- data/lib/greenhat/accessors/gitlab.rb +75 -0
- data/lib/greenhat/accessors/memory.rb +10 -10
- data/lib/greenhat/accessors/process.rb +4 -0
- data/lib/greenhat/cli.rb +147 -58
- data/lib/greenhat/color.rb +27 -0
- data/lib/greenhat/logbot.rb +9 -9
- data/lib/greenhat/settings.rb +27 -7
- data/lib/greenhat/shell/args.rb +146 -0
- data/lib/greenhat/shell/cat.rb +25 -73
- data/lib/greenhat/shell/color_string.rb +8 -8
- data/lib/greenhat/shell/disk.rb +31 -4
- data/lib/greenhat/shell/faststats.rb +103 -56
- data/lib/greenhat/shell/field_helper.rb +75 -0
- data/lib/greenhat/shell/filter_help.rb +162 -0
- data/lib/greenhat/shell/gitlab.rb +61 -2
- data/lib/greenhat/shell/help.rb +98 -15
- data/lib/greenhat/shell/list.rb +46 -0
- data/lib/greenhat/shell/log.rb +118 -104
- data/lib/greenhat/shell/page.rb +11 -5
- data/lib/greenhat/shell/process.rb +29 -17
- data/lib/greenhat/shell/report.rb +37 -47
- data/lib/greenhat/shell/shell_helper.rb +661 -0
- data/lib/greenhat/shell.rb +23 -9
- data/lib/greenhat/thing/file_types.rb +31 -5
- data/lib/greenhat/thing/formatters/json_shellwords.rb +0 -3
- data/lib/greenhat/thing/formatters/nginx.rb +44 -0
- data/lib/greenhat/thing/helpers.rb +4 -4
- data/lib/greenhat/thing/kind.rb +9 -2
- data/lib/greenhat/thing/spinner.rb +3 -3
- data/lib/greenhat/thing.rb +25 -3
- data/lib/greenhat/tty/columns.rb +4 -0
- data/lib/greenhat/version.rb +1 -1
- data/lib/greenhat.rb +15 -14
- metadata +38 -18
- data/lib/greenhat/shell/filter.rb +0 -128
- data/lib/greenhat/shell/helper.rb +0 -584
data/lib/greenhat/shell.rb
CHANGED
@@ -2,7 +2,9 @@ module GreenHat
|
|
2
2
|
# Root Level Shell
|
3
3
|
module Shell
|
4
4
|
def self.pry
|
5
|
+
# rubocop:disable Lint/Debugger
|
5
6
|
binding.pry
|
7
|
+
# rubocop:enable Lint/Debugger
|
6
8
|
end
|
7
9
|
|
8
10
|
def self.df
|
@@ -34,7 +36,7 @@ module GreenHat
|
|
34
36
|
file_list.each do |file|
|
35
37
|
next if File.size(file).zero?
|
36
38
|
|
37
|
-
puts "- Loading #{file.
|
39
|
+
puts "- Loading #{file.pastel(:green)}"
|
38
40
|
|
39
41
|
archive.things_create(file: file).setup
|
40
42
|
end
|
@@ -42,14 +44,26 @@ module GreenHat
|
|
42
44
|
|
43
45
|
def self.debug
|
44
46
|
ENV['DEBUG'] = if ENV['DEBUG']
|
45
|
-
puts "Debug #{'Off'.
|
47
|
+
puts "GreenHat Debug Logging #{'Off'.pastel(:red)}"
|
46
48
|
nil
|
47
49
|
else
|
48
|
-
puts "Debug #{'On'.
|
50
|
+
puts "GreenHat Debug Logging #{'On'.pastel(:green)}"
|
49
51
|
'true'
|
50
52
|
end
|
51
53
|
end
|
52
54
|
|
55
|
+
def self.quiet
|
56
|
+
Cli.quiet!
|
57
|
+
|
58
|
+
if Cli.quiet
|
59
|
+
puts "GreenHat Quiet Logging #{'Off'.pastel(:red)}"
|
60
|
+
nil
|
61
|
+
else
|
62
|
+
puts "GreenHat Quiet Logging #{'On'.pastel(:green)}"
|
63
|
+
'true'
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
53
67
|
def self.uptime
|
54
68
|
Shell::Cat.default ['uptime']
|
55
69
|
end
|
@@ -68,21 +82,21 @@ module GreenHat
|
|
68
82
|
|
69
83
|
def self.history
|
70
84
|
Settings.cmd_history_clean.each_with_index do |line, i|
|
71
|
-
puts "#{i.to_s.ljust(3).
|
85
|
+
puts "#{i.to_s.ljust(3).pastel(:magenta)} #{line}"
|
72
86
|
end
|
73
87
|
end
|
74
88
|
|
75
89
|
def self.ls
|
76
|
-
GreenHat::Cli.help
|
90
|
+
GreenHat::Cli.help(false)
|
77
91
|
end
|
78
92
|
|
79
93
|
def self.ll
|
80
|
-
GreenHat::Cli.help
|
94
|
+
GreenHat::Cli.help(false)
|
81
95
|
end
|
82
96
|
|
83
|
-
def self.
|
84
|
-
puts "#{'GreenHat'.
|
85
|
-
puts ' - https://gitlab.com/gitlab-com/support/toolbox/greenhat'.
|
97
|
+
def self.version
|
98
|
+
puts "#{'GreenHat'.pastel(:green)}: #{GreenHat::VERSION.pastel(:blue)}"
|
99
|
+
puts ' - https://gitlab.com/gitlab-com/support/toolbox/greenhat'.pastel(:cyan)
|
86
100
|
end
|
87
101
|
end
|
88
102
|
end
|
@@ -43,6 +43,13 @@ module GreenHat
|
|
43
43
|
/dmesg/
|
44
44
|
]
|
45
45
|
},
|
46
|
+
'repmgrd/current' => {
|
47
|
+
format: :bracket_log,
|
48
|
+
log: true,
|
49
|
+
pattern: [
|
50
|
+
%r{repmgrd/current}
|
51
|
+
]
|
52
|
+
},
|
46
53
|
'log/syslog' => {
|
47
54
|
format: :syslog,
|
48
55
|
log: true,
|
@@ -95,6 +102,13 @@ module GreenHat
|
|
95
102
|
%r{consul/current}
|
96
103
|
]
|
97
104
|
},
|
105
|
+
'sentinel/current' => {
|
106
|
+
format: :time_space,
|
107
|
+
log: true,
|
108
|
+
pattern: [
|
109
|
+
%r{sentinel/current}
|
110
|
+
]
|
111
|
+
},
|
98
112
|
'consul/failover_pgbouncer.log' => {
|
99
113
|
format: :raw,
|
100
114
|
log: true,
|
@@ -323,14 +337,14 @@ module GreenHat
|
|
323
337
|
]
|
324
338
|
},
|
325
339
|
'nginx/gitlab_pages_access.log' => {
|
326
|
-
format: :
|
340
|
+
format: :nginx,
|
327
341
|
log: true,
|
328
342
|
pattern: [
|
329
343
|
%r{nginx/gitlab_pages_access.log}
|
330
344
|
]
|
331
345
|
},
|
332
346
|
'nginx/gitlab_access.log' => {
|
333
|
-
format: :
|
347
|
+
format: :nginx,
|
334
348
|
log: true,
|
335
349
|
pattern: [
|
336
350
|
%r{nginx/gitlab_access.log}
|
@@ -470,7 +484,13 @@ module GreenHat
|
|
470
484
|
%r{redis/config},
|
471
485
|
%r{redis-exporter/config},
|
472
486
|
%r{registry/config},
|
473
|
-
%r{sidekiq/config}
|
487
|
+
%r{sidekiq/config},
|
488
|
+
%r{pgbouncer/config},
|
489
|
+
%r{pgbouncer-exporter/config},
|
490
|
+
%r{repmgrd/config},
|
491
|
+
%r{sentinel/config},
|
492
|
+
%r{consul/config},
|
493
|
+
%r{mailroom/current}
|
474
494
|
]
|
475
495
|
},
|
476
496
|
'redis/current' => {
|
@@ -481,7 +501,6 @@ module GreenHat
|
|
481
501
|
%r{redis/@.*}
|
482
502
|
]
|
483
503
|
},
|
484
|
-
|
485
504
|
'nginx/gitlab_error.log' => {
|
486
505
|
format: :time_space,
|
487
506
|
log: true,
|
@@ -489,6 +508,13 @@ module GreenHat
|
|
489
508
|
%r{nginx/gitlab_error.log}
|
490
509
|
]
|
491
510
|
},
|
511
|
+
'nginx/error.log' => {
|
512
|
+
format: :raw,
|
513
|
+
log: false,
|
514
|
+
pattern: [
|
515
|
+
%r{nginx/error.log}
|
516
|
+
]
|
517
|
+
},
|
492
518
|
'nginx/gitlab_registry_error.log' => {
|
493
519
|
format: :time_space,
|
494
520
|
log: true,
|
@@ -510,7 +536,7 @@ module GreenHat
|
|
510
536
|
]
|
511
537
|
},
|
512
538
|
'nginx/gitlab_registry_access.log' => {
|
513
|
-
format: :
|
539
|
+
format: :nginx,
|
514
540
|
log: true,
|
515
541
|
pattern: [
|
516
542
|
%r{nginx/gitlab_registry_access.log}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Top
|
2
|
+
module GreenHat
|
3
|
+
# Log
|
4
|
+
module Formatters
|
5
|
+
# ==========================================================================
|
6
|
+
# Formatters
|
7
|
+
# ==========================================================================
|
8
|
+
def format_nginx
|
9
|
+
self.result = raw.map do |row|
|
10
|
+
ip, _sym, remote_user, rest = row.split(' ', 4)
|
11
|
+
|
12
|
+
time, rest = rest.split(']', 2)
|
13
|
+
time = Time.strptime(time, '[%d/%b/%Y:%H:%M:%S %z')
|
14
|
+
|
15
|
+
verb, status, bytes, http_referer, http_user_agent, gzip_ratio = Shellwords.split(rest)
|
16
|
+
|
17
|
+
method, path, http_version = verb.split
|
18
|
+
|
19
|
+
{
|
20
|
+
remote_addr: ip,
|
21
|
+
remote_user: remote_user,
|
22
|
+
method: method,
|
23
|
+
path: path,
|
24
|
+
status: status,
|
25
|
+
bytes: bytes,
|
26
|
+
http_version: http_version,
|
27
|
+
http_referer: http_referer,
|
28
|
+
http_user_agent: http_user_agent,
|
29
|
+
gzip_ratio: gzip_ratio,
|
30
|
+
time: time
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
:ok
|
35
|
+
end
|
36
|
+
|
37
|
+
# rubocop:disable Layout/LineLength
|
38
|
+
# NGINX Conf: /var/opt/gitlab/nginx/conf/nginx.conf
|
39
|
+
# log_format gitlab_access '$remote_addr - $remote_user [$time_local] "$request_method $filtered_request_uri $server_protocol" $status $body_bytes_sent "$filtered_http_referer" "$http_user_agent" $gzip_ratio';
|
40
|
+
# rubocop:enable Layout/LineLength
|
41
|
+
|
42
|
+
# ==========================================================================
|
43
|
+
end
|
44
|
+
end
|
@@ -5,10 +5,10 @@ module GreenHat
|
|
5
5
|
# Console Helper
|
6
6
|
def inspect
|
7
7
|
[
|
8
|
-
'Thing'.
|
9
|
-
kind&.to_s&.
|
10
|
-
type&.
|
11
|
-
name&.
|
8
|
+
'Thing'.pastel(:bright_black),
|
9
|
+
kind&.to_s&.pastel(:blue),
|
10
|
+
type&.pastel(:bright_yellow),
|
11
|
+
name&.pastel(:cyan)
|
12
12
|
].compact.join(' ')
|
13
13
|
end
|
14
14
|
|
data/lib/greenhat/thing/kind.rb
CHANGED
@@ -52,7 +52,9 @@ module GreenHat
|
|
52
52
|
|
53
53
|
# rubocop:disable Style/SymbolProc
|
54
54
|
def prompt_for_kind
|
55
|
+
# rubocop:disable Lint/Debugger
|
55
56
|
binding.pry if ENV['DEBUG']
|
57
|
+
# rubocop:enable Lint/Debugger
|
56
58
|
|
57
59
|
# Default to everything
|
58
60
|
prompt_list = types.clone
|
@@ -61,13 +63,18 @@ module GreenHat
|
|
61
63
|
json = check_oj_parse?(first_line)
|
62
64
|
|
63
65
|
if json
|
66
|
+
if Settings.assume_json?
|
67
|
+
self.type = 'json'
|
68
|
+
return true
|
69
|
+
end
|
70
|
+
|
64
71
|
prompt_list.select! do |_k, v|
|
65
72
|
v.to_s.include? 'json'
|
66
73
|
end
|
67
74
|
end
|
68
75
|
|
69
|
-
puts "Unable to determine file type for #{name.
|
70
|
-
puts "Use '#{'json'.
|
76
|
+
puts "Unable to determine file type for #{name.pastel(:yellow)}"
|
77
|
+
puts "Use '#{'json'.pastel(:cyan)}' or '#{'raw'.pastel(:cyan)}' if there are no matches (see file_types.rb)"
|
71
78
|
|
72
79
|
option = prompt.select('Wat is this?', prompt_list.keys.sort_by(&:length), filter: true)
|
73
80
|
|
@@ -7,7 +7,7 @@ module GreenHat
|
|
7
7
|
|
8
8
|
@spin_time = Time.now
|
9
9
|
@spinner = TTY::Spinner.new(
|
10
|
-
"#{time.
|
10
|
+
"#{time.pastel(:bright_black)} - [:spinner] :title", hide_cursor: true, success_mark: '✔'.pastel(:green)
|
11
11
|
)
|
12
12
|
@spinner.update(title: title)
|
13
13
|
|
@@ -25,7 +25,7 @@ module GreenHat
|
|
25
25
|
title_update = if spin_end.blank?
|
26
26
|
title
|
27
27
|
else
|
28
|
-
"#{title} (#{spin_end.
|
28
|
+
"#{title} (#{spin_end.pastel(:blue)})"
|
29
29
|
end
|
30
30
|
|
31
31
|
@spinner.update(title: title_update)
|
@@ -33,7 +33,7 @@ module GreenHat
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def time
|
36
|
-
Time.now.strftime('%I:%M:%S').
|
36
|
+
Time.now.strftime('%I:%M:%S').pastel(:bright_black)
|
37
37
|
end
|
38
38
|
|
39
39
|
# Replace TimeDifference with https://stackoverflow.com/a/4136485/1678507
|
data/lib/greenhat/thing.rb
CHANGED
@@ -26,9 +26,10 @@ class Thing < Teron
|
|
26
26
|
field :parsed # Flag for Parsing
|
27
27
|
field :result # Processed Data
|
28
28
|
field :raw_result # Flag for reading raw data
|
29
|
+
field :result_fields # All available fields
|
29
30
|
|
30
31
|
def friendly_name
|
31
|
-
"#{archive.friendly_name.
|
32
|
+
"#{archive.friendly_name.pastel(:blue)} #{name.pastel(:green)}"
|
32
33
|
end
|
33
34
|
|
34
35
|
def setup
|
@@ -49,6 +50,13 @@ class Thing < Teron
|
|
49
50
|
result
|
50
51
|
end
|
51
52
|
|
53
|
+
# Processor
|
54
|
+
def fields
|
55
|
+
process unless parsed
|
56
|
+
|
57
|
+
result_fields
|
58
|
+
end
|
59
|
+
|
52
60
|
def raw
|
53
61
|
raw_read if raw_result.nil?
|
54
62
|
|
@@ -66,7 +74,7 @@ class Thing < Teron
|
|
66
74
|
end
|
67
75
|
|
68
76
|
def raw_read
|
69
|
-
spin_start("Read #{name.
|
77
|
+
spin_start("Read #{name.pastel(:blue)} #{size.pastel(:bright_black)}")
|
70
78
|
self.raw_result = File.read(file).split("\n")
|
71
79
|
rescue StandardError => e
|
72
80
|
LogBot.fatal('Raw Read', message: e.message, backtrace: e.backtrace.first)
|
@@ -103,7 +111,7 @@ class Thing < Teron
|
|
103
111
|
raw_read if raw_result.nil?
|
104
112
|
|
105
113
|
if methods.include? formatter
|
106
|
-
spin_start("Parse #{name.
|
114
|
+
spin_start("Parse #{name.pastel(:blue)} #{kind.to_s.pastel(:bright_black)} ")
|
107
115
|
begin
|
108
116
|
send(formatter)
|
109
117
|
rescue StandardError => e
|
@@ -116,6 +124,20 @@ class Thing < Teron
|
|
116
124
|
|
117
125
|
self.parsed = true
|
118
126
|
|
127
|
+
self.result_fields = field_processing
|
128
|
+
|
119
129
|
save!
|
120
130
|
end
|
131
|
+
|
132
|
+
def field_processing
|
133
|
+
if data.instance_of?(Array)
|
134
|
+
data.select { |x| x.instance_of?(Hash) }.map(&:keys).flatten.uniq
|
135
|
+
else
|
136
|
+
[]
|
137
|
+
end
|
138
|
+
rescue StandardError => e
|
139
|
+
LogBot.fatal('Process', message: e.message, backtrace: e.backtrace.first)
|
140
|
+
|
141
|
+
[]
|
142
|
+
end
|
121
143
|
end
|
data/lib/greenhat/tty/columns.rb
CHANGED
@@ -28,6 +28,10 @@ module TTY
|
|
28
28
|
# THE SHIM! Strings that are too large fail to render correctly to do an empty result
|
29
29
|
# Set the maximum table width to half the screen size. Can't be full size due to the table headers
|
30
30
|
LogBot.debug('TTY Column Width') if ENV['DEBUG']
|
31
|
+
|
32
|
+
# TODO: Check Empty Results
|
33
|
+
return [0] if table.data.empty?
|
34
|
+
|
31
35
|
extract_widths(table.data).map { |x| x >= TTY::Screen.width ? (TTY::Screen.width * 3 / 4) : x }
|
32
36
|
|
33
37
|
else
|
data/lib/greenhat/version.rb
CHANGED
data/lib/greenhat.rb
CHANGED
@@ -1,27 +1,28 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'action_view'
|
4
|
+
require 'active_support'
|
5
|
+
require 'active_support/core_ext'
|
6
|
+
require 'amazing_print'
|
4
7
|
require 'benchmark'
|
8
|
+
require 'dotenv'
|
5
9
|
require 'find'
|
6
|
-
require 'tty-prompt'
|
7
|
-
require 'tty-spinner'
|
8
|
-
require 'tty-table'
|
9
|
-
require 'tty-pager'
|
10
|
-
require 'tty-cursor'
|
11
|
-
require 'tty-reader'
|
12
10
|
require 'hash_dot'
|
13
11
|
require 'oj'
|
14
|
-
require '
|
15
|
-
require 'active_support'
|
16
|
-
require 'active_support/core_ext'
|
12
|
+
require 'pastel'
|
17
13
|
require 'pry'
|
18
|
-
require '
|
19
|
-
require 'colorize'
|
14
|
+
require 'require_all'
|
20
15
|
require 'semantic'
|
16
|
+
require 'slim'
|
17
|
+
require 'tty-cursor'
|
18
|
+
require 'tty-pager'
|
21
19
|
require 'tty-progressbar'
|
22
|
-
require '
|
20
|
+
require 'tty-prompt'
|
21
|
+
require 'tty-reader'
|
22
|
+
require 'tty-spinner'
|
23
|
+
require 'tty-table'
|
24
|
+
require 'tty-which'
|
23
25
|
require 'warning'
|
24
|
-
require 'dotenv'
|
25
26
|
|
26
27
|
# Custom Gem
|
27
28
|
require 'teron'
|
@@ -49,6 +50,7 @@ require 'greenhat/archive'
|
|
49
50
|
require 'greenhat/host'
|
50
51
|
require 'greenhat/logbot'
|
51
52
|
require 'greenhat/settings'
|
53
|
+
require 'greenhat/color'
|
52
54
|
|
53
55
|
# Formatters - Loads Required Files Automatically
|
54
56
|
require 'greenhat/thing/super_log'
|
@@ -65,7 +67,6 @@ require 'greenhat/thing'
|
|
65
67
|
require 'greenhat/shell'
|
66
68
|
|
67
69
|
# TODO: Confirm
|
68
|
-
# require 'greenhat/thing/log_format'
|
69
70
|
# require 'greenhat/host'
|
70
71
|
# require 'greenhat/web'
|
71
72
|
|
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.3.3
|
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-09-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: amazing_print
|
@@ -53,49 +53,49 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '5.14'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: minitest-reporters
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.4'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '1.4'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '13.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '13.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rubocop
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
90
|
-
type: :
|
89
|
+
version: '1.12'
|
90
|
+
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '1.12'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: actionview
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
@@ -109,19 +109,19 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '6.1'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: activesupport
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '6.1'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '6.1'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: did_you_mean
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -360,6 +360,20 @@ dependencies:
|
|
360
360
|
- - "~>"
|
361
361
|
- !ruby/object:Gem::Version
|
362
362
|
version: '0.12'
|
363
|
+
- !ruby/object:Gem::Dependency
|
364
|
+
name: tty-which
|
365
|
+
requirement: !ruby/object:Gem::Requirement
|
366
|
+
requirements:
|
367
|
+
- - "~>"
|
368
|
+
- !ruby/object:Gem::Version
|
369
|
+
version: '0.5'
|
370
|
+
type: :runtime
|
371
|
+
prerelease: false
|
372
|
+
version_requirements: !ruby/object:Gem::Requirement
|
373
|
+
requirements:
|
374
|
+
- - "~>"
|
375
|
+
- !ruby/object:Gem::Version
|
376
|
+
version: '0.5'
|
363
377
|
- !ruby/object:Gem::Dependency
|
364
378
|
name: warning
|
365
379
|
requirement: !ruby/object:Gem::Requirement
|
@@ -386,6 +400,7 @@ files:
|
|
386
400
|
- bin/greenhat
|
387
401
|
- lib/greenhat.rb
|
388
402
|
- lib/greenhat/accessors/disk.rb
|
403
|
+
- lib/greenhat/accessors/gitlab.rb
|
389
404
|
- lib/greenhat/accessors/logs/production.rb
|
390
405
|
- lib/greenhat/accessors/logs/sidekiq.rb
|
391
406
|
- lib/greenhat/accessors/memory.rb
|
@@ -393,25 +408,29 @@ files:
|
|
393
408
|
- lib/greenhat/accessors/process.rb
|
394
409
|
- lib/greenhat/archive.rb
|
395
410
|
- lib/greenhat/cli.rb
|
411
|
+
- lib/greenhat/color.rb
|
396
412
|
- lib/greenhat/host.rb
|
397
413
|
- lib/greenhat/logbot.rb
|
398
414
|
- lib/greenhat/pry_helpers.rb
|
399
415
|
- lib/greenhat/settings.rb
|
400
416
|
- lib/greenhat/shell.rb
|
417
|
+
- lib/greenhat/shell/args.rb
|
401
418
|
- lib/greenhat/shell/cat.rb
|
402
419
|
- lib/greenhat/shell/color_string.rb
|
403
420
|
- lib/greenhat/shell/disk.rb
|
404
421
|
- lib/greenhat/shell/faststats.rb
|
405
|
-
- lib/greenhat/shell/
|
422
|
+
- lib/greenhat/shell/field_helper.rb
|
423
|
+
- lib/greenhat/shell/filter_help.rb
|
406
424
|
- lib/greenhat/shell/gitlab.rb
|
407
425
|
- lib/greenhat/shell/help.rb
|
408
|
-
- lib/greenhat/shell/
|
426
|
+
- lib/greenhat/shell/list.rb
|
409
427
|
- lib/greenhat/shell/log.rb
|
410
428
|
- lib/greenhat/shell/memory.rb
|
411
429
|
- lib/greenhat/shell/network.rb
|
412
430
|
- lib/greenhat/shell/page.rb
|
413
431
|
- lib/greenhat/shell/process.rb
|
414
432
|
- lib/greenhat/shell/report.rb
|
433
|
+
- lib/greenhat/shell/shell_helper.rb
|
415
434
|
- lib/greenhat/thing.rb
|
416
435
|
- lib/greenhat/thing/file_types.rb
|
417
436
|
- lib/greenhat/thing/formatters/api_json.rb
|
@@ -426,6 +445,7 @@ files:
|
|
426
445
|
- lib/greenhat/thing/formatters/json.rb
|
427
446
|
- lib/greenhat/thing/formatters/json_shellwords.rb
|
428
447
|
- lib/greenhat/thing/formatters/multiline_json.rb
|
448
|
+
- lib/greenhat/thing/formatters/nginx.rb
|
429
449
|
- lib/greenhat/thing/formatters/raw.rb
|
430
450
|
- lib/greenhat/thing/formatters/shellwords.rb
|
431
451
|
- lib/greenhat/thing/formatters/syslog.rb
|