kumogata 0.5.4 → 0.5.5

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: 737dc652de39e3d5aeeddda9e7c173aab549a4a7
4
- data.tar.gz: 39afb226eeabe86714367d84eb14dc7316acd8e5
3
+ metadata.gz: 05df0dd35de66dcfff11541b428ece4688d17f65
4
+ data.tar.gz: 2f6c5363c47f71d9b2a936fa340ad1f48ae601fd
5
5
  SHA512:
6
- metadata.gz: 03e90e8b9266662df9bcb11158c2a60950fe0c1e3f81046bdbb30ae4c5d322e57d7fe1748bee8d4f90bd8b00134b9eb79692a42ec7489d20f61a8a9d98e7134b
7
- data.tar.gz: d128303f7165458dd6a149551d0226abc0c29929ea894ad30e637eb1d654e5c23a3f22366a0f9a999759f04740e5521f8d208103a2c32122761f5bd668c27eac
6
+ metadata.gz: e3de82eaf417eaf49fc4e724d1aaeb261751d0d4b4fddd8e874879804eaa84513cc040e448b222718eda69ee4aef14bc9daaaf8594f44d538d2cc9ac7d2e1de5
7
+ data.tar.gz: fba3eb7bcb2569b066f3eb9e474f8bbbe69c6a655beac8cf035d961ba1e575ef8595cd0b2e2a34c64a0a4396b23131effc4b14f1c48d876e4f16c791b46bfa2a
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ packer_cache
19
19
  test.rb
20
20
  result.json
21
21
  command_result.json
22
+ /_site
data/README.md CHANGED
@@ -93,6 +93,7 @@ Options:
93
93
  -r, --region REGION
94
94
  --profile CONFIG_PROFILE
95
95
  --credentials-path PATH
96
+ --config-path PATH
96
97
  --format TMPLATE_FORMAT
97
98
  --output-format FORMAT
98
99
  --skip-replace-underscore
@@ -199,7 +200,7 @@ end
199
200
 
200
201
  ```ruby
201
202
  Resources do
202
- _include 'template2.rb'
203
+ _include 'template2.rb', :ami_id => 'ami-XXXXXXXX'
203
204
  end
204
205
  ```
205
206
 
@@ -209,7 +210,7 @@ end
209
210
  myEC2Instance do
210
211
  Type "AWS::EC2::Instance"
211
212
  Properties do
212
- ImageId "ami-XXXXXXXX"
213
+ ImageId args[:ami_id]
213
214
  InstanceType { Ref "InstanceType" }
214
215
  KeyName "your_key_name"
215
216
  end
@@ -623,10 +624,5 @@ aws_session_token=texample123324
623
624
  * Create a stack and run post commands
624
625
  * https://asciinema.org/a/8088
625
626
 
626
- ## Contributing
627
-
628
- 1. Fork it ( http://github.com/winebarrel/kumogata/fork )
629
- 2. Create your feature branch (`git checkout -b my-new-feature`)
630
- 3. Commit your changes (`git commit -am 'Add some feature'`)
631
- 4. Push to the branch (`git push origin my-new-feature`)
632
- 5. Create new Pull Request
627
+ ## Similar tools
628
+ * [Codenize.tools](http://codenize.tools/)
data/bin/kumogata CHANGED
@@ -29,8 +29,12 @@ begin
29
29
 
30
30
  provider = AWS::Core::CredentialProviders::SharedCredentialFileProvider.new(credentials_opts)
31
31
  aws_opts[:credential_provider] = provider
32
+ end
32
33
 
33
- region = provider.send(:load_profile)['region']
34
+ if File.exist?(options.config_path) and File.readable?(options.config_path)
35
+ ini = AWS::Core::IniParser.parse(File.read(options.config_path))
36
+ profile = options.config_profile || 'default'
37
+ region = ini[profile]['region']
34
38
  aws_opts[:region] = region if region
35
39
  end
36
40
 
data/kumogata.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ['sgwr_dts@yahoo.co.jp']
11
11
  spec.summary = %q{A tool for AWS CloudFormation.}
12
12
  spec.description = %q{A tool for AWS CloudFormation. It can define a template in Ruby DSL.}
13
- spec.homepage = 'https://github.com/winebarrel/kumogata'
13
+ spec.homepage = 'http://kumogata.codenize.tools/'
14
14
  spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
@@ -8,6 +8,7 @@ class Kumogata::ArgumentParser
8
8
  :command_result_log => File.join(Dir.pwd, 'command_result.json'),
9
9
  :color => $stdout.tty?,
10
10
  :debug => false,
11
+ :config_path => File.expand_path('~/.aws/config'),
11
12
  }
12
13
 
13
14
  COMMANDS = {
@@ -86,6 +87,7 @@ class Kumogata::ArgumentParser
86
87
  opt.on('-r', '--region REGION') {|v| options[:region] = v }
87
88
  opt.on('' , '--profile CONFIG_PROFILE') {|v| options[:config_profile] = v }
88
89
  opt.on('' , '--credentials-path PATH') {|v| options[:credentials_path] = v }
90
+ opt.on('' , '--config-path PATH') {|v| options[:config_path] = v }
89
91
  opt.on('' , '--format TMPLATE_FORMAT', supported_formats) {|v| options[:format] = v }
90
92
  opt.on('' , '--output-format FORMAT', supported_formats) {|v| options[:output_format] = v }
91
93
  opt.on('' , '--skip-replace-underscore') { options[:skip_replace_underscore] = false }
@@ -291,7 +291,7 @@ class Kumogata::Client
291
291
 
292
292
  def define_template_func(scope, path_or_url)
293
293
  scope.instance_eval(<<-EOS)
294
- def _include(file)
294
+ def _include(file, args = {})
295
295
  path = file.dup
296
296
 
297
297
  unless path =~ %r|\\A/| or path =~ %r|\\A\\w+://|
@@ -1,3 +1,3 @@
1
1
  module Kumogata
2
- VERSION = '0.5.4'
2
+ VERSION = '0.5.5'
3
3
  end
@@ -940,6 +940,62 @@ Resources do
940
940
  _include #{f.path.inspect}
941
941
  end
942
942
 
943
+ Outputs do
944
+ AZ do
945
+ Value do
946
+ Fn__GetAtt "myEC2Instance", "AvailabilityZone"
947
+ end
948
+ end
949
+ end
950
+ EOS
951
+
952
+ json_template = run_client(:convert, :template => template)
953
+ end
954
+
955
+ expect(json_template).to eq((<<-EOS).chomp)
956
+ {
957
+ "Resources": {
958
+ "myEC2Instance": {
959
+ "Type": "AWS::EC2::Instance",
960
+ "Properties": {
961
+ "ImageId": "ami-XXXXXXXX",
962
+ "InstanceType": "t1.micro"
963
+ }
964
+ }
965
+ },
966
+ "Outputs": {
967
+ "AZ": {
968
+ "Value": {
969
+ "Fn::GetAtt": [
970
+ "myEC2Instance",
971
+ "AvailabilityZone"
972
+ ]
973
+ }
974
+ }
975
+ }
976
+ }
977
+ EOS
978
+ end
979
+
980
+ it 'convert splitted Ruby template to JSON template with args' do
981
+ json_template = nil
982
+
983
+ part_of_template = <<-EOS
984
+ myEC2Instance do
985
+ Type "AWS::EC2::Instance"
986
+ Properties do
987
+ ImageId args[:ami_id]
988
+ InstanceType "t1.micro"
989
+ end
990
+ end
991
+ EOS
992
+
993
+ tempfile(part_of_template, '.rb') do |f|
994
+ template = <<-EOS
995
+ Resources do
996
+ _include #{f.path.inspect}, {:ami_id => "ami-XXXXXXXX"}
997
+ end
998
+
943
999
  Outputs do
944
1000
  AZ do
945
1001
  Value do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kumogata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-09 00:00:00.000000000 Z
11
+ date: 2015-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -321,7 +321,7 @@ files:
321
321
  - spec/spec_helper.rb
322
322
  - spec/string_stream_spec.rb
323
323
  - spec/vpc-knowhow-2014-04.template
324
- homepage: https://github.com/winebarrel/kumogata
324
+ homepage: http://kumogata.codenize.tools/
325
325
  licenses:
326
326
  - MIT
327
327
  metadata: {}