cloudit 0.0.7 → 0.1.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: 0ec3176b8b67a1ca01cdbbd9560e98a858967551
4
- data.tar.gz: a885cf68772af70428abb0dc6b0a5869cee98662
3
+ metadata.gz: 3353a5a81bfb22965463099ab58d6b79b01dea27
4
+ data.tar.gz: 070d25814d452e3afe6bf06b9605ee6f3ef1c01e
5
5
  SHA512:
6
- metadata.gz: dc824d4b6ee60060baf04435ba136d83cae4448586ea00853e110307de3572799da1460c6dda873ea5c540e042e03b7ee80cd0d1b1e707c27b304a5aa3b300fb
7
- data.tar.gz: 12f3ae87ea5820ba36302b6088c1e4a0d9e2fd2fb75e861e63a171e015536bc46188d7c8afe767c8f337418043a86e5b51dbfef7d6bb814af0f69db160d6d71b
6
+ metadata.gz: 67336ed2b5f9cfb825faa7cba1dc255a3345a21ec988471e20dee86c98dbef1b7ad23d2be0943e6a4e244dd4ea007fcd06333804f595eb7ecfd751b24cf00313
7
+ data.tar.gz: 007af9ea5ee9583780541f9668eb46351195f2af62a667b14bae7c6f11f75fcc818dba88069fdf9b6ec0113a5dc0c175a54abe4ac1bd0388248d6d5c9445ce04
@@ -8,6 +8,7 @@ class Cloudit::Command::Base
8
8
 
9
9
  VALID_METHODS = []
10
10
  OPTION_NAME_OFFSET = 6
11
+ DEFAULT_DIRECTORY = './'
11
12
 
12
13
  def initialize(args=[])
13
14
  @method = if args[0].is_a?(String) && args[0].include?('-')
@@ -9,7 +9,6 @@ class Cloudit::Command::Generate < Cloudit::Command::Base
9
9
  DESCRIPTION = 'Build YAML files into Cloudformation template'
10
10
  DEFAULT_OUT_FILE = 'out.json'
11
11
  DEFAULT_MAIN_CFN_EXTENSION = 'cfn.yml'
12
- DEFAULT_DIRECTORY = './'
13
12
 
14
13
  def index
15
14
  if @opts.help?
@@ -17,6 +16,7 @@ class Cloudit::Command::Generate < Cloudit::Command::Base
17
16
  else
18
17
  out = @opts[:output]
19
18
  dir = normalize_directory @opts[:directory]
19
+ min = @opts[:minify]
20
20
 
21
21
  if File.exist? out
22
22
  if out.eql? DEFAULT_OUT_FILE
@@ -31,13 +31,14 @@ class Cloudit::Command::Generate < Cloudit::Command::Base
31
31
  end
32
32
  end
33
33
 
34
- json = generate_json(dir)
35
- $stdout.puts json
34
+ json = generate_json dir, min
36
35
  File.new(out, 'w').write "#{json}\n"
36
+
37
+ $stdout.puts "Template generated to #{out}"
37
38
  end
38
39
  end
39
40
 
40
- def generate_json(dir='.')
41
+ def generate_json(dir='./', min=false)
41
42
  hash = {}
42
43
  hash_sections = {}
43
44
 
@@ -68,7 +69,11 @@ class Cloudit::Command::Generate < Cloudit::Command::Base
68
69
 
69
70
  hash.merge! hash_sections
70
71
 
71
- hash.to_json
72
+ if min
73
+ hash.to_json
74
+ else
75
+ JSON.pretty_generate hash
76
+ end
72
77
  end
73
78
 
74
79
  private
@@ -89,6 +94,7 @@ class Cloudit::Command::Generate < Cloudit::Command::Base
89
94
  opts.string '-o', '--output', 'output filename', default: DEFAULT_OUT_FILE
90
95
  opts.bool '-h', '--help', 'print options', default: false
91
96
  opts.string '-d', '--directory', 'root directory to generate', default: DEFAULT_DIRECTORY
97
+ opts.bool '-m', '--minify', 'minify JSON output', default: false
92
98
 
93
99
  self.slop_opts = opts
94
100
  self.parser = Slop::Parser.new(opts)
@@ -5,6 +5,7 @@ require 'aws-sdk'
5
5
  class Cloudit::Command::Validate < Cloudit::Command::Base
6
6
  VALID_METHODS = ['help']
7
7
  DESCRIPTION = "Validate CloudFormation template"
8
+ DEFAULT_REGION = 'us-east-1'
8
9
 
9
10
  def index
10
11
  if @opts.help?
@@ -16,16 +17,16 @@ class Cloudit::Command::Validate < Cloudit::Command::Base
16
17
 
17
18
  private
18
19
 
19
- def validate_template(region='us-east-1')
20
+ def validate_template(region=DEFAULT_REGION)
20
21
  cf = Aws::CloudFormation::Client.new(
21
22
  region: region,
22
23
  access_key_id: Cloudit::Config.access_key_id,
23
24
  secret_access_key: Cloudit::Config.secret_access_key
24
25
  )
25
26
 
26
- json = Cloudit::Command::Generate.new.generate_json
27
+ json = Cloudit::Command::Generate.new.generate_json @opts[:directory]
27
28
  resp = cf.validate_template(template_body: json)
28
- $stdout.puts resp
29
+ $stdout.puts "Template is valid"
29
30
  rescue Aws::CloudFormation::Errors::ValidationError => e
30
31
  $stdout.puts e.message
31
32
  end
@@ -35,7 +36,8 @@ class Cloudit::Command::Validate < Cloudit::Command::Base
35
36
  opts.banner = 'Usage: cloudit validate'
36
37
  opts.separator ''
37
38
  opts.separator 'Validate options:'
38
- opts.string '-r', '--region', 'region used for validation'
39
+ opts.string '-r', '--region', 'region used for validation', default: Cloudit::Config.region || DEFAULT_REGION
40
+ opts.string '-d', '--directory', 'root directory to generate', default: DEFAULT_DIRECTORY
39
41
  opts.bool '-h', '--help', 'print usage', default: false
40
42
 
41
43
  self.slop_opts = opts
@@ -1,3 +1,3 @@
1
1
  module Cloudit
2
- VERSION = "0.0.7"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zachary Chai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-16 00:00:00.000000000 Z
11
+ date: 2016-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: slop