aws-cfn-decompiler 0.2.5 → 0.5.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 +8 -8
- data/aws-cfn-decompiler.gemspec +2 -5
- data/aws-cfn-decompiler.iml +1 -13
- data/bin/cfn-decompiler +21 -18
- data/lib/aws/cfn/decompiler.rb +2 -140
- data/lib/aws/cfn/decompiler/base.rb +114 -0
- data/lib/aws/cfn/decompiler/main.rb +49 -0
- data/lib/aws/cfn/decompiler/version.rb +1 -1
- metadata +19 -53
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZWU4ODg1ZTFhZjYyNGYxZjE3ODA0YjNiYjVhZWMyZmRjYTIxODE0Yw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YjUzZGE4NjhhZDQ1Y2UyZGIyN2Q2NjkwYzE0NWYxODc1YTg1YmMyZA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NDM3ZTBlNzAyYzhiYTRhMGMyYjA3NTUxOTYwMWUxYzc3NDlkN2ZmZTU2ZTQ1
|
10
|
+
OGU4ZWFkNzljZTJhNmViYjhkZjFmMmRmZTdmOTY4NDM0OGU5OTQ3NTk3MjVj
|
11
|
+
NjFiZTk5YTMyY2I0YTc3ODZiYTFmYjEwZDZiNmJhYjUzMDU3MWQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZGQ4NjFmYjVmZDZlMWUwYjM4ZDM5ODA2NDljOGU1MjlhNjI2YWE2NzM3MDlk
|
14
|
+
OWM2NzE3ZWZmNTg5MzhlMmNkYzUyZWU3ZDJhODQ3MjVjYzJlNjgzZjU2MzRj
|
15
|
+
MTVkNWJlNjA3ODFlOWVmYmQzMjlmZjM4ODk3ZDQ4MzdkNzM3OTE=
|
data/aws-cfn-decompiler.gemspec
CHANGED
@@ -18,13 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "awesome_print"
|
21
|
+
spec.add_dependency "awesome_print", '~> 1.2', '>= 1.2.0'
|
22
22
|
spec.add_dependency "psych"
|
23
23
|
spec.add_dependency "json"
|
24
|
-
spec.add_dependency 'aws-cfn-compiler', '>= 0.3.1', '~> 0.2'
|
25
24
|
spec.add_dependency "slop"
|
25
|
+
spec.add_dependency 'aws-cfn-compiler', '>= 0.5.0', '~> 0.5'
|
26
26
|
|
27
|
-
spec.add_development_dependency "json_pure"
|
28
|
-
spec.add_development_dependency 'bundler', "~> 1.6"
|
29
|
-
spec.add_development_dependency 'rake'
|
30
27
|
end
|
data/aws-cfn-decompiler.iml
CHANGED
@@ -3,24 +3,12 @@
|
|
3
3
|
<component name="CompassSettings">
|
4
4
|
<option name="compassSupportEnabled" value="true" />
|
5
5
|
</component>
|
6
|
-
<component name="FacetManager">
|
7
|
-
<facet type="gem" name="Ruby Gem">
|
8
|
-
<configuration>
|
9
|
-
<option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
|
10
|
-
<option name="GEM_APP_TEST_PATH" value="$MODULE_DIR$/test" />
|
11
|
-
<option name="GEM_APP_LIB_PATH" value="$MODULE_DIR$/lib" />
|
12
|
-
</configuration>
|
13
|
-
</facet>
|
14
|
-
</component>
|
15
6
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
16
7
|
<exclude-output />
|
17
|
-
<content url="file://$MODULE_DIR$"
|
18
|
-
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
19
|
-
</content>
|
8
|
+
<content url="file://$MODULE_DIR$" />
|
20
9
|
<orderEntry type="jdk" jdkName="RVM: ruby-1.9.3-p547 [aws-cfn-decompiler]" jdkType="RUBY_SDK" />
|
21
10
|
<orderEntry type="sourceFolder" forTests="false" />
|
22
11
|
<orderEntry type="library" scope="PROVIDED" name="awesome_print (v1.2.0, RVM: ruby-1.9.3-p547 [aws-cfn-decompiler]) [gem]" level="application" />
|
23
|
-
<orderEntry type="library" scope="PROVIDED" name="aws-cfn-compiler (v0.3.0, RVM: ruby-1.9.3-p547 [aws-cfn-decompiler]) [gem]" level="application" />
|
24
12
|
<orderEntry type="library" scope="PROVIDED" name="aws-cfn-dsl (v0.0.4, RVM: ruby-1.9.3-p547 [aws-cfn-decompiler]) [gem]" level="application" />
|
25
13
|
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.6.2, RVM: ruby-1.9.3-p547 [aws-cfn-decompiler]) [gem]" level="application" />
|
26
14
|
<orderEntry type="library" scope="PROVIDED" name="cloudformation-ruby-dsl (v0.4.3, RVM: ruby-1.9.3-p547 [aws-cfn-decompiler]) [gem]" level="application" />
|
data/bin/cfn-decompiler
CHANGED
@@ -2,27 +2,30 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
|
5
|
-
|
6
|
-
#
|
7
|
-
|
5
|
+
path = File.dirname(__FILE__)
|
6
|
+
if File.exists?("#{path}/../.gitignore")
|
7
|
+
%w(aws-cfn-dsl aws-cfn-compiler cloudformation-ruby-dsl).each do |mod|
|
8
|
+
add_path = File.expand_path(File.join(path, "../../#{mod}", "lib"))
|
9
|
+
$:.unshift(add_path)
|
10
|
+
end
|
11
|
+
else
|
8
12
|
# Borrowing from "whiches" gem ...
|
9
|
-
cmd = File.basename(__FILE__, '.rb')
|
10
|
-
exes = []
|
11
|
-
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
12
|
-
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
File.dirname(__FILE__)
|
22
|
-
end
|
13
|
+
cmd = File.basename(__FILE__, '.rb')
|
14
|
+
exes = []
|
15
|
+
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
16
|
+
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
|
17
|
+
exts.each { |ext|
|
18
|
+
exe = File.join(path, "#{cmd}#{ext}")
|
19
|
+
exes << exe if File.executable? exe
|
20
|
+
}
|
21
|
+
end
|
22
|
+
if exes.size > 0
|
23
|
+
path = File.dirname(exes[0])
|
24
|
+
end
|
23
25
|
|
26
|
+
end
|
24
27
|
add_path = File.expand_path(File.join(path, "..", "lib"))
|
25
28
|
$:.unshift(add_path)
|
26
29
|
|
27
30
|
require 'aws/cfn/decompiler'
|
28
|
-
Aws::Cfn::DeCompiler::Main.new
|
31
|
+
Aws::Cfn::DeCompiler::Main.new.run
|
data/lib/aws/cfn/decompiler.rb
CHANGED
@@ -1,142 +1,4 @@
|
|
1
1
|
require "aws/cfn/decompiler/version"
|
2
|
-
require "aws/cfn/
|
2
|
+
require "aws/cfn/decompiler/base"
|
3
|
+
require "aws/cfn/decompiler/main"
|
3
4
|
|
4
|
-
require 'json'
|
5
|
-
require 'ap'
|
6
|
-
require 'yaml'
|
7
|
-
require 'slop'
|
8
|
-
|
9
|
-
module Aws
|
10
|
-
module Cfn
|
11
|
-
module DeCompiler
|
12
|
-
class Main < Aws::Cfn::Compiler::Main
|
13
|
-
attr_accessor :template
|
14
|
-
|
15
|
-
def run
|
16
|
-
|
17
|
-
@opts = Slop.parse(help: true, strict: true) do
|
18
|
-
on :j, :template=, 'The template to decompile', as: String
|
19
|
-
on :o, :output=, 'The directory to output the components to.', as: String
|
20
|
-
on :f, :format=, 'The output format of the components. [JSON|YAML]', as: String, match: %r/yaml|json/i
|
21
|
-
on :s, :specification=, 'The specification file to create.', as: String
|
22
|
-
end
|
23
|
-
|
24
|
-
unless @opts[:template]
|
25
|
-
puts @opts
|
26
|
-
exit
|
27
|
-
end
|
28
|
-
unless @opts[:output].nil?
|
29
|
-
unless File.directory?(@opts[:output])
|
30
|
-
puts @opts
|
31
|
-
exit
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
load @opts[:template]
|
36
|
-
|
37
|
-
puts
|
38
|
-
puts 'Validating decompiled file...'
|
39
|
-
|
40
|
-
validate(@items)
|
41
|
-
|
42
|
-
output_dir = @opts[:output] || Dir.pwd
|
43
|
-
puts
|
44
|
-
puts "Writing decompiled parts to #{output_dir}..."
|
45
|
-
save(output_dir)
|
46
|
-
|
47
|
-
puts
|
48
|
-
puts '*** Decompiled Successfully ***'
|
49
|
-
end
|
50
|
-
|
51
|
-
def save(output_dir)
|
52
|
-
|
53
|
-
specification = {}
|
54
|
-
format = @opts[:format] rescue 'yaml'
|
55
|
-
@items.each do |section, section_items|
|
56
|
-
case section
|
57
|
-
when /Mappings|Parameters|Resources|Outputs/
|
58
|
-
specification[section] = []
|
59
|
-
section_items.each do |name,value|
|
60
|
-
dir = File.join(output_dir,section.to_s)
|
61
|
-
unless File.directory?(dir)
|
62
|
-
Dir.mkdir(dir)
|
63
|
-
end
|
64
|
-
file = "#{name}.#{format}"
|
65
|
-
hash = { name => value }
|
66
|
-
|
67
|
-
save_section(dir, file, format, section, hash)
|
68
|
-
specification[section] << name
|
69
|
-
end
|
70
|
-
when /AWSTemplateFormatVersion|Description/
|
71
|
-
specification[section] = section_items
|
72
|
-
else
|
73
|
-
raise "ERROR: Unsupported section '#{section}' in template"
|
74
|
-
end
|
75
|
-
|
76
|
-
end
|
77
|
-
|
78
|
-
# Save specification
|
79
|
-
unless @opts[:specification].nil?
|
80
|
-
dir = File.dirname(@opts[:specification])
|
81
|
-
dir = output_dir unless dir
|
82
|
-
save_section(dir, File.basename(@opts[:specification]), format, '', specification, "Specification to #{dir}/")
|
83
|
-
end
|
84
|
-
|
85
|
-
end
|
86
|
-
|
87
|
-
def save_section(dir, file, format, section, hash, join='/')
|
88
|
-
path = File.join(dir, file)
|
89
|
-
|
90
|
-
begin
|
91
|
-
# File.delete path if File.exists? path
|
92
|
-
File.open path, File::CREAT|File::TRUNC|File::RDWR, 0644 do |f|
|
93
|
-
case format
|
94
|
-
when /json/
|
95
|
-
f.write JSON.pretty_generate(compiled)
|
96
|
-
when /yaml/
|
97
|
-
f.write hash.to_yaml line_width: 1024, indentation: 4, canonical: false
|
98
|
-
else
|
99
|
-
raise "Unsupported format #{format}. Should have noticed this earlier!"
|
100
|
-
end
|
101
|
-
f.close
|
102
|
-
end
|
103
|
-
puts " decompiled #{section}#{join}#{file}."
|
104
|
-
rescue
|
105
|
-
puts "!!! Could not write compiled file #{path}: #{$!}"
|
106
|
-
abort!
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
def load(file=nil)
|
111
|
-
if file
|
112
|
-
begin
|
113
|
-
abs = File.absolute_path(File.expand_path(file))
|
114
|
-
unless File.exists?(abs) or @opts[:output].nil?
|
115
|
-
abs = File.absolute_path(File.expand_path(File.join(@opts[:output],file)))
|
116
|
-
end
|
117
|
-
rescue
|
118
|
-
# pass
|
119
|
-
end
|
120
|
-
if File.exists?(abs)
|
121
|
-
case File.extname(File.basename(abs)).downcase
|
122
|
-
when /json/
|
123
|
-
template = JSON.parse(File.read(abs))
|
124
|
-
when /yaml/
|
125
|
-
template = YAML.load(File.read(abs))
|
126
|
-
else
|
127
|
-
raise "Unsupported file type for specification: #{file}"
|
128
|
-
end
|
129
|
-
@items = template
|
130
|
-
else
|
131
|
-
raise "Unable to open template: #{abs}"
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
protected
|
137
|
-
|
138
|
-
|
139
|
-
end
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
require "aws/cfn/decompiler/version"
|
2
|
+
require "aws/cfn/compiler"
|
3
|
+
|
4
|
+
require 'json'
|
5
|
+
require 'ap'
|
6
|
+
require 'yaml'
|
7
|
+
|
8
|
+
module Aws
|
9
|
+
module Cfn
|
10
|
+
module DeCompiler
|
11
|
+
class Base < ::Aws::Cfn::Compiler::Base
|
12
|
+
attr_accessor :template
|
13
|
+
|
14
|
+
def save(output_dir)
|
15
|
+
|
16
|
+
specification = {}
|
17
|
+
format = @opts[:format] rescue 'yaml'
|
18
|
+
@items.each do |section, section_items|
|
19
|
+
case section
|
20
|
+
when /Mappings|Parameters|Resources|Outputs/
|
21
|
+
specification[section] = []
|
22
|
+
section_items.each do |name,value|
|
23
|
+
dir = File.join(output_dir,section.to_s)
|
24
|
+
unless File.directory?(dir)
|
25
|
+
Dir.mkdir(dir)
|
26
|
+
end
|
27
|
+
file = "#{name}.#{format}"
|
28
|
+
hash = { name => value }
|
29
|
+
|
30
|
+
save_section(dir, file, format, section, hash)
|
31
|
+
specification[section] << name
|
32
|
+
end
|
33
|
+
when /AWSTemplateFormatVersion|Description/
|
34
|
+
specification[section] = section_items
|
35
|
+
else
|
36
|
+
raise "ERROR: Unsupported section '#{section}' in template"
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
# Save specification
|
42
|
+
unless @opts[:specification].nil?
|
43
|
+
dir = File.dirname(@opts[:specification])
|
44
|
+
dir = output_dir unless dir
|
45
|
+
save_section(dir, File.basename(@opts[:specification]), format, '', specification, "Specification to #{dir}/")
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
def save_section(dir, file, format, section, hash, join='/')
|
51
|
+
path = File.join(dir, file)
|
52
|
+
|
53
|
+
begin
|
54
|
+
# File.delete path if File.exists? path
|
55
|
+
File.open path, File::CREAT|File::TRUNC|File::RDWR, 0644 do |f|
|
56
|
+
case format
|
57
|
+
when /json/
|
58
|
+
f.write JSON.pretty_generate(compiled)
|
59
|
+
when /yaml/
|
60
|
+
f.write hash.to_yaml line_width: 1024, indentation: 4, canonical: false
|
61
|
+
else
|
62
|
+
raise "Unsupported format #{format}. Should have noticed this earlier!"
|
63
|
+
end
|
64
|
+
f.close
|
65
|
+
end
|
66
|
+
puts " decompiled #{section}#{join}#{file}."
|
67
|
+
rescue
|
68
|
+
puts "!!! Could not write compiled file #{path}: #{$!}"
|
69
|
+
abort!
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def decompile(file=nil)
|
74
|
+
load file
|
75
|
+
|
76
|
+
puts
|
77
|
+
puts 'Validating decompiled file...'
|
78
|
+
|
79
|
+
validate(@items)
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
def load(file=nil)
|
84
|
+
if file
|
85
|
+
begin
|
86
|
+
abs = File.absolute_path(File.expand_path(file))
|
87
|
+
unless File.exists?(abs) or @opts[:output].nil?
|
88
|
+
abs = File.absolute_path(File.expand_path(File.join(@opts[:output],file)))
|
89
|
+
end
|
90
|
+
rescue
|
91
|
+
# pass
|
92
|
+
end
|
93
|
+
if File.exists?(abs)
|
94
|
+
case File.extname(File.basename(abs)).downcase
|
95
|
+
when /json/
|
96
|
+
template = JSON.parse(File.read(abs))
|
97
|
+
when /yaml/
|
98
|
+
template = YAML.load(File.read(abs))
|
99
|
+
else
|
100
|
+
raise "Unsupported file type for specification: #{file}"
|
101
|
+
end
|
102
|
+
@items = template
|
103
|
+
else
|
104
|
+
raise "Unable to open template: #{abs}"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
protected
|
110
|
+
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require "aws/cfn/decompiler/version"
|
2
|
+
require "aws/cfn/decompiler/base"
|
3
|
+
|
4
|
+
require 'slop'
|
5
|
+
|
6
|
+
module Aws
|
7
|
+
module Cfn
|
8
|
+
module DeCompiler
|
9
|
+
class Main < Base
|
10
|
+
attr_accessor :template
|
11
|
+
|
12
|
+
def run
|
13
|
+
|
14
|
+
@opts = Slop.parse(help: true, strict: true) do
|
15
|
+
on :j, :template=, 'The template to decompile', as: String
|
16
|
+
on :o, :output=, 'The directory to output the components to.', as: String
|
17
|
+
on :f, :format=, 'The output format of the components. [JSON|YAML|Ruby]', as: String, match: %r/yaml|json|ruby/i
|
18
|
+
on :s, :specification=, 'The specification file to create.', as: String
|
19
|
+
end
|
20
|
+
|
21
|
+
unless @opts[:template]
|
22
|
+
puts @opts
|
23
|
+
exit
|
24
|
+
end
|
25
|
+
unless @opts[:output].nil?
|
26
|
+
unless File.directory?(@opts[:output])
|
27
|
+
puts @opts
|
28
|
+
exit
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
decompile @opts[:template]
|
33
|
+
|
34
|
+
output_dir = @opts[:output] || Dir.pwd
|
35
|
+
puts
|
36
|
+
puts "Writing decompiled parts to #{output_dir}..."
|
37
|
+
save(output_dir)
|
38
|
+
|
39
|
+
puts
|
40
|
+
puts '*** Decompiled Successfully ***'
|
41
|
+
end
|
42
|
+
|
43
|
+
protected
|
44
|
+
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-cfn-decompiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christo De Lange
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.2'
|
17
20
|
- - ! '>='
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
22
|
+
version: 1.2.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.2'
|
24
30
|
- - ! '>='
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: 1.2.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: psych
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,26 +58,6 @@ dependencies:
|
|
52
58
|
- - ! '>='
|
53
59
|
- !ruby/object:Gem::Version
|
54
60
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: aws-cfn-compiler
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 0.3.1
|
62
|
-
- - ~>
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: '0.2'
|
65
|
-
type: :runtime
|
66
|
-
prerelease: false
|
67
|
-
version_requirements: !ruby/object:Gem::Requirement
|
68
|
-
requirements:
|
69
|
-
- - ! '>='
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: 0.3.1
|
72
|
-
- - ~>
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0.2'
|
75
61
|
- !ruby/object:Gem::Dependency
|
76
62
|
name: slop
|
77
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,47 +73,25 @@ dependencies:
|
|
87
73
|
- !ruby/object:Gem::Version
|
88
74
|
version: '0'
|
89
75
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
76
|
+
name: aws-cfn-compiler
|
91
77
|
requirement: !ruby/object:Gem::Requirement
|
92
78
|
requirements:
|
93
79
|
- - ! '>='
|
94
80
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
96
|
-
type: :development
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - ! '>='
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0'
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: bundler
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
81
|
+
version: 0.5.0
|
107
82
|
- - ~>
|
108
83
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
110
|
-
type: :
|
84
|
+
version: '0.5'
|
85
|
+
type: :runtime
|
111
86
|
prerelease: false
|
112
87
|
version_requirements: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - ~>
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '1.6'
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: rake
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
120
88
|
requirements:
|
121
89
|
- - ! '>='
|
122
90
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
124
|
-
|
125
|
-
prerelease: false
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - ! '>='
|
91
|
+
version: 0.5.0
|
92
|
+
- - ~>
|
129
93
|
- !ruby/object:Gem::Version
|
130
|
-
version: '0'
|
94
|
+
version: '0.5'
|
131
95
|
description: The idea is to extract a big CloudFormation template into a folder structure
|
132
96
|
to better manage pieces of a CloudFormation deployment. Additionally, writing in
|
133
97
|
JSON is hard, so the decompiler can create YAML files as well.
|
@@ -163,6 +127,8 @@ files:
|
|
163
127
|
- example/resources/subnets.json
|
164
128
|
- example/resources/vpc.json
|
165
129
|
- lib/aws/cfn/decompiler.rb
|
130
|
+
- lib/aws/cfn/decompiler/base.rb
|
131
|
+
- lib/aws/cfn/decompiler/main.rb
|
166
132
|
- lib/aws/cfn/decompiler/version.rb
|
167
133
|
homepage: https://github.com/dldinternet/aws-cfn-decompiler
|
168
134
|
licenses:
|