greenhat 0.2.0 → 0.3.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.
@@ -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.colorize(:green)}"
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'.colorize(:red)}"
47
+ puts "GreenHat Debug Logging #{'Off'.pastel(:red)}"
46
48
  nil
47
49
  else
48
- puts "Debug #{'On'.colorize(:green)}"
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).colorize(:magenta)} #{line}"
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.about
84
- puts "#{'GreenHat'.colorize(:green)}: #{GreenHat::VERSION.colorize(:blue)}"
85
- puts ' - https://gitlab.com/gitlab-com/support/toolbox/greenhat'.colorize(:cyan)
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,
@@ -470,7 +484,12 @@ 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}
474
493
  ]
475
494
  },
476
495
  'redis/current' => {
@@ -18,9 +18,6 @@ module GreenHat
18
18
 
19
19
  result.sort.to_h
20
20
  rescue StandardError => e
21
- binding.pry
22
- # TODO: Background Logger?
23
- e.message
24
21
  LogBot.warn('JSON Parse', e.message)
25
22
  next
26
23
  end
@@ -5,10 +5,10 @@ module GreenHat
5
5
  # Console Helper
6
6
  def inspect
7
7
  [
8
- 'Thing'.colorize(:light_black),
9
- kind&.to_s&.colorize(:blue),
10
- type&.colorize(:light_yellow),
11
- name&.colorize(:cyan)
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
 
@@ -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.colorize(:yellow)}"
70
- puts "Use '#{'json'.colorize(:cyan)}' or '#{'raw'.colorize(:cyan)}' if there are no matches (see file_types.rb)"
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.colorize(:light_black)} - [:spinner] :title", hide_cursor: true, success_mark: '✔'.colorize(:green)
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.colorize(:blue)})"
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').colorize(:light_black)
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
@@ -28,7 +28,7 @@ class Thing < Teron
28
28
  field :raw_result # Flag for reading raw data
29
29
 
30
30
  def friendly_name
31
- "#{archive.friendly_name.colorize(:blue)} #{name.colorize(:green)} #{id.colorize(:black)}"
31
+ "#{archive.friendly_name.pastel(:blue)} #{name.pastel(:green)}"
32
32
  end
33
33
 
34
34
  def setup
@@ -66,7 +66,7 @@ class Thing < Teron
66
66
  end
67
67
 
68
68
  def raw_read
69
- spin_start("Read #{name.colorize(:blue)} #{size.colorize(:light_black)}")
69
+ spin_start("Read #{name.pastel(:blue)} #{size.pastel(:bright_black)}")
70
70
  self.raw_result = File.read(file).split("\n")
71
71
  rescue StandardError => e
72
72
  LogBot.fatal('Raw Read', message: e.message, backtrace: e.backtrace.first)
@@ -103,7 +103,7 @@ class Thing < Teron
103
103
  raw_read if raw_result.nil?
104
104
 
105
105
  if methods.include? formatter
106
- spin_start("Parse #{name.colorize(:blue)} #{kind.to_s.colorize(:light_black)} ")
106
+ spin_start("Parse #{name.pastel(:blue)} #{kind.to_s.pastel(:bright_black)} ")
107
107
  begin
108
108
  send(formatter)
109
109
  rescue StandardError => e
@@ -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
@@ -1,3 +1,3 @@
1
1
  module GreenHat
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.3.0'.freeze
3
3
  end
data/lib/greenhat.rb CHANGED
@@ -1,27 +1,27 @@
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 'slim'
15
- require 'active_support'
16
- require 'active_support/core_ext'
12
+ require 'pastel'
17
13
  require 'pry'
18
- require 'amazing_print'
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 'require_all'
20
+ require 'tty-prompt'
21
+ require 'tty-reader'
22
+ require 'tty-spinner'
23
+ require 'tty-table'
23
24
  require 'warning'
24
- require 'dotenv'
25
25
 
26
26
  # Custom Gem
27
27
  require 'teron'
@@ -49,6 +49,7 @@ require 'greenhat/archive'
49
49
  require 'greenhat/host'
50
50
  require 'greenhat/logbot'
51
51
  require 'greenhat/settings'
52
+ require 'greenhat/color'
52
53
 
53
54
  # Formatters - Loads Required Files Automatically
54
55
  require 'greenhat/thing/super_log'
@@ -65,7 +66,6 @@ require 'greenhat/thing'
65
66
  require 'greenhat/shell'
66
67
 
67
68
  # TODO: Confirm
68
- # require 'greenhat/thing/log_format'
69
69
  # require 'greenhat/host'
70
70
  # require 'greenhat/web'
71
71
 
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.2.0
4
+ version: 0.3.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-08-13 00:00:00.000000000 Z
11
+ date: 2021-09-01 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: rake
56
+ name: minitest-reporters
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '13.0'
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: '13.0'
68
+ version: '1.4'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rubocop
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.12'
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: '1.12'
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: actionview
84
+ name: rubocop
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '6.1'
90
- type: :runtime
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: '6.1'
96
+ version: '1.12'
97
97
  - !ruby/object:Gem::Dependency
98
- name: activesupport
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: colorize
112
+ name: activesupport
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0.8'
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: '0.8'
124
+ version: '6.1'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: did_you_mean
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -386,6 +386,7 @@ files:
386
386
  - bin/greenhat
387
387
  - lib/greenhat.rb
388
388
  - lib/greenhat/accessors/disk.rb
389
+ - lib/greenhat/accessors/gitlab.rb
389
390
  - lib/greenhat/accessors/logs/production.rb
390
391
  - lib/greenhat/accessors/logs/sidekiq.rb
391
392
  - lib/greenhat/accessors/memory.rb
@@ -393,25 +394,28 @@ files:
393
394
  - lib/greenhat/accessors/process.rb
394
395
  - lib/greenhat/archive.rb
395
396
  - lib/greenhat/cli.rb
397
+ - lib/greenhat/color.rb
396
398
  - lib/greenhat/host.rb
397
399
  - lib/greenhat/logbot.rb
398
400
  - lib/greenhat/pry_helpers.rb
399
401
  - lib/greenhat/settings.rb
400
402
  - lib/greenhat/shell.rb
403
+ - lib/greenhat/shell/args.rb
401
404
  - lib/greenhat/shell/cat.rb
402
405
  - lib/greenhat/shell/color_string.rb
403
406
  - lib/greenhat/shell/disk.rb
404
407
  - lib/greenhat/shell/faststats.rb
405
- - lib/greenhat/shell/filter.rb
408
+ - lib/greenhat/shell/filter_help.rb
406
409
  - lib/greenhat/shell/gitlab.rb
407
410
  - lib/greenhat/shell/help.rb
408
- - lib/greenhat/shell/helper.rb
411
+ - lib/greenhat/shell/list.rb
409
412
  - lib/greenhat/shell/log.rb
410
413
  - lib/greenhat/shell/memory.rb
411
414
  - lib/greenhat/shell/network.rb
412
415
  - lib/greenhat/shell/page.rb
413
416
  - lib/greenhat/shell/process.rb
414
417
  - lib/greenhat/shell/report.rb
418
+ - lib/greenhat/shell/shell_helper.rb
415
419
  - lib/greenhat/thing.rb
416
420
  - lib/greenhat/thing/file_types.rb
417
421
  - lib/greenhat/thing/formatters/api_json.rb