stackup 0.6.2 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ffd8804055fd41488737c4aa1c9ac18803e24ab3
4
- data.tar.gz: c275b6c61a6648542fb94cd5a9ab717c533176fc
3
+ metadata.gz: 6ba465cd7978cabe9b222a5053e0dcafbf8334e3
4
+ data.tar.gz: 731b59587827b376025ad29b769f3495aec6361c
5
5
  SHA512:
6
- metadata.gz: 6ac12e46a9796359459d2b8c23fc6ec973dffcc2518b04927fb9c3b7d9cc9f6949ab445d9db77af26d7ddb2e5528bb0888d9263f9aa9217b6a91846c8b8205de
7
- data.tar.gz: 96a2e583ccce26e5ad3fc45091ff1dab1400f001bc695a58e5400f525a20959ae4bf7ecb94eb23f86ce4ee7265a1a7896a383e5bf4c21b4a4539240dcbbe15a6
6
+ metadata.gz: 32fe3ab0b69a2c80a00ef6d41baea6a75732ed0e46ed8fef37c14ac14248d2aa15203309010eb3e262f42ad018aec828ba77abf78ff47a6ae1a662931382ee56
7
+ data.tar.gz: 5455f7e5e49d56e892fdc3a4964d29b7e0f9715837097a2d7afef165395897532fda6cacbadfe737cc8982eb85a818e3c44661fd619f9a599ed0f550838b748d
data/README.md CHANGED
@@ -72,3 +72,21 @@ to `Stackup`, e.g.
72
72
  stack = Stackup(credentials).stack("my-stack")
73
73
 
74
74
  See {Stackup::Stack} for more details.
75
+
76
+ ## Rake integration
77
+
78
+ Stackup integrates with Rake to generate handy tasks for managing a stack, e.g.
79
+
80
+ require "stackup/rake_tasks"
81
+
82
+ Stackup::RakeTasks("app") do |t|
83
+ t.stack = "my-app"
84
+ t.template = "app-template.json"
85
+ end
86
+
87
+ providing tasks:
88
+
89
+ rake app:diff # Show pending changes to my-app stack
90
+ rake app:down # Delete my-app stack
91
+ rake app:inspect # Show my-app stack outputs and resources
92
+ rake app:up # Update my-app stack
data/bin/stackup CHANGED
@@ -10,6 +10,9 @@ require "stackup"
10
10
  require "stackup/version"
11
11
  require "yaml"
12
12
 
13
+ $stdout.sync = true
14
+ $stderr.sync = true
15
+
13
16
  Clamp do
14
17
 
15
18
  option ["-L", "--list"], :flag, "list stacks" do
@@ -288,7 +291,7 @@ Clamp do
288
291
  "Status" => stack.status,
289
292
  "Parameters" => stack.parameters,
290
293
  "Resources" => stack.resources,
291
- "Outputs" => stack.outputs,
294
+ "Outputs" => stack.outputs
292
295
  }
293
296
  display_data(data)
294
297
  end
@@ -0,0 +1,71 @@
1
+ require "rake/tasklib"
2
+
3
+ module Stackup
4
+
5
+ # Declare Rake tasks for managing a stack.
6
+ #
7
+ class RakeTasks < Rake::TaskLib
8
+
9
+ attr_accessor :name
10
+ attr_accessor :stack
11
+ attr_accessor :template
12
+ attr_accessor :parameters
13
+
14
+ alias_method :namespace=, :name=
15
+
16
+ def initialize(name, template = nil)
17
+ @name = name
18
+ @stack = name
19
+ @template = template
20
+ yield self if block_given?
21
+ fail ArgumentError, "no name provided" unless @name
22
+ fail ArgumentError, "no template provided" unless @template
23
+ define
24
+ end
25
+
26
+ def stackup(*rest)
27
+ sh "stackup", stack, *rest
28
+ end
29
+
30
+ def define
31
+ namespace(name) do
32
+
33
+ up_args = ["-t", template]
34
+ up_deps = [template]
35
+
36
+ if parameters
37
+ up_args += ["-p", parameters]
38
+ up_deps += [parameters]
39
+ end
40
+
41
+ desc "Update #{stack} stack"
42
+ task "up" => up_deps do
43
+ stackup "up", *up_args
44
+ end
45
+
46
+ desc "Cancel update of #{stack} stack"
47
+ task "cancel" do
48
+ stackup "cancel-update"
49
+ end
50
+
51
+ desc "Show pending changes to #{stack} stack"
52
+ task "diff" => up_deps do
53
+ stackup "diff", *up_args
54
+ end
55
+
56
+ desc "Show #{stack} stack outputs and resources"
57
+ task "inspect" do
58
+ stackup "inspect"
59
+ end
60
+
61
+ desc "Delete #{stack} stack"
62
+ task "down" do
63
+ stackup "down"
64
+ end
65
+
66
+ end
67
+ end
68
+
69
+ end
70
+
71
+ end
@@ -1,5 +1,5 @@
1
1
  module Stackup
2
2
 
3
- VERSION = "0.6.2"
3
+ VERSION = "0.7.0"
4
4
 
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stackup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Williams
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-12-22 00:00:00.000000000 Z
12
+ date: 2016-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk-resources
@@ -105,6 +105,7 @@ files:
105
105
  - lib/stackup.rb
106
106
  - lib/stackup/error_handling.rb
107
107
  - lib/stackup/errors.rb
108
+ - lib/stackup/rake_tasks.rb
108
109
  - lib/stackup/service.rb
109
110
  - lib/stackup/stack.rb
110
111
  - lib/stackup/stack_watcher.rb
@@ -133,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
134
  version: '0'
134
135
  requirements: []
135
136
  rubyforge_project:
136
- rubygems_version: 2.4.8
137
+ rubygems_version: 2.5.2
137
138
  signing_key:
138
139
  specification_version: 4
139
140
  summary: Manage CloudFormation stacks