awsecrets 1.0.0 → 1.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: a8c263296a3ce4e2f9fb5a69662b5ddc3a3b741f
4
- data.tar.gz: 75c2f9275a2c2cf08b4ba70a91515edef7d74912
3
+ metadata.gz: 280f567d2ec4330ee66ba90aba628914dcf191c1
4
+ data.tar.gz: 7637115a204eecb0d633beb8be7781e5735f3f0b
5
5
  SHA512:
6
- metadata.gz: d9cbebe3ea145b2835b20cdda2a4326f602e1b8dee814538fbecf9d5bbd5b2145b384ee0e177a2f04aa278e47224a9bdc63e31891081c086dc72c20370c8655d
7
- data.tar.gz: e68e024855b51cd54d33dc94660ab148019695bb724cd4dd797e96b2cae6c1c58630dad036158ee54f8aaa06dba52ba59447ad57d64c73b9cde239adf4199a47
6
+ metadata.gz: aa3b8bd258a8739993c5ffab6a3e2b99237e12c6f9da8632c0a7413978d3becedd71139d32a1dcc41091f7b9eaaa31d662bffe5d3c5bc7909d8807516fdd96d0
7
+ data.tar.gz: dc908d2b99027f98ab6c523e3e924d8cfdd76d34151f2bfdedc0798f95e4873ac68adea2de7d4a9bb88d34ac4a1898ccca97d535846d820d623f38482ad62467
data/README.md CHANGED
@@ -4,7 +4,7 @@ AWS credentials loader
4
4
 
5
5
  ## awsecrets config precedence
6
6
 
7
- 1. Command Line Options
7
+ 1. Command Line Options (Awscreds#load method args OR self optparse)
8
8
  2. Environment Variables
9
9
  3. YAML file (secrets.yml)
10
10
  4. The AWS credentials file
@@ -28,6 +28,37 @@ Or install it yourself as:
28
28
 
29
29
  $ gem install awsecrets
30
30
 
31
+ ## Usage example
32
+
33
+ Create command line tool `ec2sample` like following code
34
+
35
+ ```ruby
36
+ #!/usr/bin/env ruby
37
+ require 'awsecrets'
38
+ Awsecrets.load
39
+ ec2_client = Aws::EC2::Client.new
40
+ puts ec2_client.describe_instances({ instance_ids: [ARGV.first] }).reservations.first.instances.first
41
+ ```
42
+
43
+ And execute
44
+
45
+ ```sh
46
+ $ ec2sample i-1aa1aaaa --profile mycreds --region ap-northeast-1
47
+
48
+ or
49
+
50
+ $ AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX AWS_REGION=ap-northeast-1 ec2sample i-1aa1aaaa
51
+
52
+ or
53
+
54
+ $ cat <<EOF > secrets.yml
55
+ region: ap-northeast-1
56
+ aws_access_key_id: XXXXXXXXXXXXXXXXXXXX
57
+ aws_secret_access_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
58
+ EOF
59
+ $ ec2sample i-1aa1aaaa
60
+ ```
61
+
31
62
  ## Contributing
32
63
 
33
64
  1. Fork it ( https://github.com/k1LoW/awsecrets/fork )
data/bin/testcommand ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ require 'awsecrets'
3
+
4
+ Awsecrets.load
5
+ ec2_client = Aws::EC2::Client.new
6
+ puts ec2_client.describe_instances({ instance_ids: [ARGV.first] }).reservations.first.instances.first
@@ -1,3 +1,3 @@
1
1
  module Awsecrets
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
data/lib/awsecrets.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'awsecrets/version'
2
+ require 'optparse'
2
3
  require 'aws-sdk'
3
4
  require 'aws_config'
4
5
  require 'yaml'
@@ -11,7 +12,7 @@ module Awsecrets
11
12
  @credentials = nil
12
13
 
13
14
  # 1. Command Line Options
14
- load_command
15
+ load_options if load_method_args
15
16
  # 2. Environment Variables
16
17
  load_env
17
18
  # 3. YAML file (secrets.yml)
@@ -25,10 +26,26 @@ module Awsecrets
25
26
  Aws.config[:credentials] = @credentials
26
27
  end
27
28
 
28
- def self.load_command
29
+ def self.load_method_args
30
+ return false unless @profile
31
+ aws_config = AWSConfig.profiles[@profile]
32
+ @region = aws_config.config_hash[:region] if aws_config && @region.nil?
33
+ @credentials = Aws::SharedCredentials.new(profile_name: @profile)
34
+ true
35
+ end
36
+
37
+ def self.load_options
38
+ opt = OptionParser.new
39
+ opt.on('--profile PROFILE') { |v| @profile = v } unless @profile
40
+ opt.on('--region REGION') { |v| @region = v } unless @region
41
+ opt.on('--secrets_path SECRETS_PATH') { |v| @secrets_path = v } unless @secrets_path
42
+ begin
43
+ opt.parse!(ARGV)
44
+ rescue OptionParser::InvalidOption
45
+ end
29
46
  return unless @profile
30
47
  aws_config = AWSConfig.profiles[@profile]
31
- @region = aws_config.config_hash[:region] if aws_config
48
+ @region = aws_config.config_hash[:region] if aws_config && @region.nil?
32
49
  @credentials = Aws::SharedCredentials.new(profile_name: @profile)
33
50
  end
34
51
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awsecrets
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-17 00:00:00.000000000 Z
11
+ date: 2016-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -140,6 +140,7 @@ files:
140
140
  - awsecrets.gemspec
141
141
  - bin/console
142
142
  - bin/setup
143
+ - bin/testcommand
143
144
  - lib/awsecrets.rb
144
145
  - lib/awsecrets/version.rb
145
146
  homepage: https://github.com/k1LoW/awsecrets