kibo 0.4.4 → 0.4.5

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.
@@ -0,0 +1,35 @@
1
+ # --spin up/spin down remotes
2
+ module Kibo::Commands
3
+ subcommand :per_instance, "run a command once on each heroku instances"
4
+ subcommand :per_role, "run a command once on each heroku role"
5
+
6
+ def per_instance
7
+ if configured_instances.empty?
8
+ E "No configured_instances in '#{Kibo.environment}' environment."
9
+ end
10
+
11
+ configured_instances.each do |instance|
12
+ cmd = [ "heroku", *ARGV, "--app", instance ]
13
+ W cmd.join(" ")
14
+ system *cmd
15
+ end
16
+ end
17
+
18
+ def per_role
19
+ if configured_instances.empty?
20
+ E "No configured_instances in '#{Kibo.environment}' environment."
21
+ end
22
+
23
+ configured_roles = configured_instances.group_by do |name|
24
+ name.split("-").last.sub(/\d+$/, "")
25
+ end
26
+
27
+ instances = configured_roles.values.first
28
+
29
+ instances.each do |instance|
30
+ cmd = [ "heroku", *ARGV, "--app", instance ]
31
+ W cmd.join(" ")
32
+ system *cmd
33
+ end
34
+ end
35
+ end
@@ -50,8 +50,18 @@ module Kibo::Commands
50
50
 
51
51
  true
52
52
  end
53
+
54
+ def list_heroku(what, instance)
55
+ heroku!(what, "--app", instance, :quiet).
56
+ split("\n").
57
+ reject { |line| line =~ /^=== / }.
58
+ map { |line| line.split(/\s+/).first }
59
+ end
53
60
 
54
61
  def share_instance(instance)
62
+ existing_sharings = list_heroku("sharing", instance)
63
+
64
+ missing_sharings = Kibo.config.sharing - existing_sharings
55
65
  Kibo.config.sharing.each do |email|
56
66
  heroku! "sharing:add", email, "--app", instance
57
67
  end
@@ -60,16 +70,10 @@ module Kibo::Commands
60
70
  def provide_instance(instance)
61
71
  partial_instance_name = instance.split("-").last # e.g. "web1"
62
72
 
63
- return unless instance_addons = Kibo.config.addons[partial_instance_name]
64
-
65
- existing_instance_addons =
66
- heroku("addons", "--app", instance, :quiet).
67
- split("\n").
68
- map do |line|
69
- next if line =~ /^=== /
70
- line.split(/\s+/).first
71
- end.compact
73
+ instance_addons = Kibo.config.addons[partial_instance_name] || []
74
+ return if instance_addons.empty?
72
75
 
76
+ existing_instance_addons = list_heroku("addons", instance)
73
77
  W "[#{instance}] addons", *existing_instance_addons
74
78
 
75
79
  missing = instance_addons - existing_instance_addons
data/lib/kibo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kibo
2
- VERSION = "0.4.4"
2
+ VERSION = "0.4.5"
3
3
  end
data/man/kibo.1 CHANGED
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "KIBO" "1" "October 2012" "Kibo 0.4.4" "Kibo Manual"
4
+ .TH "KIBO" "1" "October 2012" "Kibo 0.4.5" "Kibo Manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBkibo\fR \- manage heroku applications
data/man/kibo.1.html CHANGED
@@ -172,7 +172,7 @@ kibo -e production spindown
172
172
 
173
173
 
174
174
  <ol class='man-decor man-foot man foot'>
175
- <li class='tl'>Kibo 0.4.4</li>
175
+ <li class='tl'>Kibo 0.4.5</li>
176
176
  <li class='tc'>October 2012</li>
177
177
  <li class='tr'>kibo(1)</li>
178
178
  </ol>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kibo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-10 00:00:00.000000000 Z
12
+ date: 2012-10-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: trollop
@@ -147,9 +147,9 @@ files:
147
147
  - lib/kibo/commands/deploy.rb
148
148
  - lib/kibo/commands/generate.rb
149
149
  - lib/kibo/commands/helpers.rb
150
- - lib/kibo/commands/heroku_runner.rb
151
150
  - lib/kibo/commands/info.rb
152
151
  - lib/kibo/commands/logs.rb
152
+ - lib/kibo/commands/runner.rb
153
153
  - lib/kibo/commands/setup.rb
154
154
  - lib/kibo/commands/spin.rb
155
155
  - lib/kibo/config.rb
@@ -181,7 +181,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
181
181
  version: '0'
182
182
  segments:
183
183
  - 0
184
- hash: -235834048214903875
184
+ hash: 2596876848082864488
185
185
  required_rubygems_version: !ruby/object:Gem::Requirement
186
186
  none: false
187
187
  requirements:
@@ -1,16 +0,0 @@
1
- # --spin up/spin down remotes
2
- module Kibo::Commands
3
- subcommand :heroku, "run a command on all heroku instances"
4
-
5
- def heroku
6
- if configured_instances.empty?
7
- E "No configured_instances in '#{Kibo.environment}' environment."
8
- end
9
-
10
- configured_instances.each do |instance|
11
- cmd = [ "heroku", *ARGV, "--app", instance ]
12
- W cmd.join(" ")
13
- system *cmd
14
- end
15
- end
16
- end