stackup 0.6.2 → 0.7.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.
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