kumome 0.0.1 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 086fddfea4697332a2dabfda707133a0265eb4c6
4
- data.tar.gz: d87ee99f63016ed2c3ce1250b416543a0fc1b377
3
+ metadata.gz: 0d19fed3e49c4cb68d55f9fa5bb5976ea2335fa9
4
+ data.tar.gz: 219dc319da11e3f505db7c0491e6875493fc5e77
5
5
  SHA512:
6
- metadata.gz: fcd2297ae0424b55cf3c03076c3abb309a5ce7151676fea878912a8de1e01734dff75b356ebed9de146af4f2c82947b5f5a221a257bf9227fee6de7f7dcc340b
7
- data.tar.gz: fcd5b05a941b2181dd6a8145fcec62fa95b5e47d7dfdf4895ab061226929073aa7f781704ba353d96d25caf0f21f25e75274dee9eca5c72663cc92b79a48423a
6
+ metadata.gz: 0bc743522c27a6f97c49227f0c6c904f0d6596ce357e3f3e7c3cccfcce6c04cf25fa787ed4cb74e434c832f4cc2a229928426334eee9b7fa2bb45755636db13a
7
+ data.tar.gz: 6d20b87efba92f0b5244c1fdb6274bb4150f0834d0e6d2ef4bd959847dd8a941746395d815eb97e6b2d79b88eff1af1677828ff042ede698976c0c0919d0936c
data/.rubocop.yml CHANGED
@@ -34,6 +34,9 @@ Style/ClassAndModuleChildren:
34
34
  Style/Documentation:
35
35
  Enabled: false
36
36
 
37
+ Style/MutableConstant:
38
+ Enabled: false
39
+
37
40
  Style/StabbyLambdaParentheses:
38
41
  Enabled: false
39
42
 
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
- # Kumome
1
+ # Kumome [![Gem](https://img.shields.io/gem/v/kumome.svg)](https://rubygems.org/gems/kumome)
2
2
 
3
3
  Resource statistics tool via AWS CloudWatch.
4
4
 
5
+ [![asciicast](https://asciinema.org/a/35035.png)](https://asciinema.org/a/35035?speed=5&autoplay=1)
6
+
5
7
  ## Installation
6
8
 
7
9
  Add this line to your application's Gemfile:
@@ -46,6 +48,25 @@ EOF
46
48
  $ kumome --ec2=i-123ab45c,i-890ed12c --rds=my-rds --elb=my-elb --profile mycreds
47
49
  ```
48
50
 
51
+ ## (Default) Command options
52
+
53
+ ```sh
54
+ $ kumome
55
+ Usage:
56
+ kumome # OR: `kumome stat`
57
+
58
+ Options:
59
+ [--ec2=InstanceId,..]
60
+ [--rds=DBInstanceIdentifier,..]
61
+ [--elb=LoadBalancerName,..]
62
+ [--profile=PROFILE]
63
+ [--period=N]
64
+ # Default: 300
65
+ [--config=CONFIG]
66
+
67
+ Show AWS resource statistics
68
+ ```
69
+
49
70
  ## TODO
50
71
 
51
72
  - `tailf` option
data/lib/kumome/cli.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'thor'
2
+ require 'kumome/ext/thor'
2
3
  require 'terminal-table/import'
3
4
  require 'term/ansicolor'
4
5
  include Term::ANSIColor
@@ -7,19 +8,23 @@ module Kumome
7
8
  include Term::ANSIColor
8
9
 
9
10
  class CLI < Thor
10
- class_option :profile
11
- class_option :period, type: :numeric, default: 300
12
11
  class_option :config, type: :string
13
12
  default_command :stat
14
13
 
15
14
  Kumome::Config.load
16
15
 
17
16
  desc 'stat', 'Show AWS resource statistics'
18
- Kumome::Config.config['resources'].each_key do |r|
19
- option r, type: :string
17
+ Kumome::Config.config['resources'].each do |r, config|
18
+ option r, type: :string, banner: config['dimensions_name'] + ',..'
20
19
  end
20
+ option :profile
21
+ option :period, type: :numeric, default: 300
21
22
  def stat
22
23
  Kumome::Option.load(options)
24
+ unless Kumome::Option.selected_resource_options?
25
+ help('stat')
26
+ return
27
+ end
23
28
  data = Kumome::Stat.data
24
29
  out_table(data)
25
30
  # @TODO tailf stat
@@ -56,11 +61,12 @@ module Kumome
56
61
  data.sort_by { |k, _| k.to_i }.each do |timestamp, d|
57
62
  line = [timestamp]
58
63
  metrics_header.each_key do |h|
59
- if d.key?(h)
60
- line << d[h]
61
- else
62
- line << ''
63
- end
64
+ l = if d.key?(h)
65
+ d[h]
66
+ else
67
+ ''
68
+ end
69
+ line << l
64
70
  end
65
71
  t << line
66
72
  end
data/lib/kumome/config.rb CHANGED
@@ -12,11 +12,11 @@ module Kumome
12
12
  arg =~ /\A(--config=?|-c=?).*\z/
13
13
  end
14
14
  if config_option
15
- if config_option =~ /=/
16
- config_path = config_option.gsub(/\A(--config=?|-c=?)/, '')
17
- else
18
- config_path = argv[argv.index(config_option) + 1]
19
- end
15
+ config_path = if config_option =~ /=/
16
+ config_option.gsub(/\A(--config=?|-c=?)/, '')
17
+ else
18
+ argv[argv.index(config_option) + 1]
19
+ end
20
20
  end
21
21
  config_path = default_config_path if config_path.nil?
22
22
  config_path
@@ -0,0 +1,15 @@
1
+ class Thor
2
+ class << self
3
+ protected
4
+
5
+ def banner(command, _namespace = nil, subcommand = false)
6
+ if command.name == 'stat'
7
+ 'kumome # OR: `kumome stat`'
8
+ else
9
+ # rubocop:disable Style/GlobalVars
10
+ "#{basename} #{command.formatted_usage(self, $thor_runner, subcommand)}"
11
+ # rubocop:enable Style/GlobalVars
12
+ end
13
+ end
14
+ end
15
+ end
data/lib/kumome/option.rb CHANGED
@@ -7,5 +7,10 @@ module Kumome
7
7
  def self.load(options)
8
8
  @options = options
9
9
  end
10
+
11
+ def self.selected_resource_options?
12
+ no_resource_options = %w(profile config period)
13
+ !(@options.keys - no_resource_options).empty?
14
+ end
10
15
  end
11
16
  end
@@ -1,3 +1,3 @@
1
1
  module Kumome
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kumome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-28 00:00:00.000000000 Z
11
+ date: 2016-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -201,6 +201,7 @@ files:
201
201
  - lib/kumome/cli.rb
202
202
  - lib/kumome/config.rb
203
203
  - lib/kumome/default.yml
204
+ - lib/kumome/ext/thor.rb
204
205
  - lib/kumome/option.rb
205
206
  - lib/kumome/stat.rb
206
207
  - lib/kumome/version.rb