cloudit 0.0.7 → 0.1.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: 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