awskeyring 0.9.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/i18n/en.yml +1 -0
- data/lib/awskeyring/awsapi.rb +39 -0
- data/lib/awskeyring/version.rb +1 -1
- data/lib/awskeyring_command.rb +14 -25
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9ba390ba84576e3ec79b6e60fc5da80363faa36
|
4
|
+
data.tar.gz: 4a6352ace35cad42d6a11fd0624646d958211e1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec365e5dbe6349195131b07fb65ef7665d3c310894e5a0a08f1f58bf3fbcba0586ec385d46b1c1b1c7c095cb76c792bb1855c44ed01c590825532453f5f459d0
|
7
|
+
data.tar.gz: 67adf2badf660187fafad8ee55f8a743d312abc4fab491f1181fb54736b8530c2886275e37990971073970f45d0c2606a866eca8806949b862c3f1cb73d1437e
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [v0.10.0](https://github.com/vibrato/awskeyring/tree/v0.10.0) (2019-04-24)
|
4
|
+
[Full Changelog](https://github.com/vibrato/awskeyring/compare/v0.9.0...v0.10.0)
|
5
|
+
|
6
|
+
**Implemented enhancements:**
|
7
|
+
|
8
|
+
- Add --unset flag to env command [\#44](https://github.com/vibrato/awskeyring/pull/44) ([tristanmorgan](https://github.com/tristanmorgan))
|
9
|
+
|
3
10
|
## [v0.9.0](https://github.com/vibrato/awskeyring/tree/v0.9.0) (2019-04-09)
|
4
11
|
[Full Changelog](https://github.com/vibrato/awskeyring/compare/v0.8.1...v0.9.0)
|
5
12
|
|
data/i18n/en.yml
CHANGED
data/lib/awskeyring/awsapi.rb
CHANGED
@@ -20,6 +20,16 @@ module Awskeyring
|
|
20
20
|
# AWS Signin url
|
21
21
|
AWS_SIGNIN_URL = 'https://signin.aws.amazon.com/federation'.freeze
|
22
22
|
|
23
|
+
# AWS Env vars
|
24
|
+
AWS_ENV_VARS = %w[
|
25
|
+
AWS_ACCESS_KEY_ID
|
26
|
+
AWS_ACCESS_KEY
|
27
|
+
AWS_SECRET_ACCESS_KEY
|
28
|
+
AWS_SECRET_KEY
|
29
|
+
AWS_SECURITY_TOKEN
|
30
|
+
AWS_SESSION_TOKEN
|
31
|
+
].freeze
|
32
|
+
|
23
33
|
# Twelve hours in seconds
|
24
34
|
TWELVE_HOUR = (60 * 60 * 12)
|
25
35
|
# One hour in seconds
|
@@ -101,6 +111,35 @@ module Awskeyring
|
|
101
111
|
)
|
102
112
|
end
|
103
113
|
|
114
|
+
# Generates Environment Variables for the AWS CLI
|
115
|
+
#
|
116
|
+
# @param [Hash] params including
|
117
|
+
# [String] account The aws_access_key_id
|
118
|
+
# [String] secret The aws_secret_access_key
|
119
|
+
# [String] token The aws_session_token
|
120
|
+
# @return [Hash] env_var hash
|
121
|
+
def self.get_env_array(params = {})
|
122
|
+
env_var = {}
|
123
|
+
env_var['AWS_DEFAULT_REGION'] = 'us-east-1' unless region
|
124
|
+
env_var['AWS_ACCOUNT_NAME'] = params[:account] if params[:account]
|
125
|
+
|
126
|
+
if params[:key]
|
127
|
+
env_var['AWS_ACCESS_KEY_ID'] = params[:key]
|
128
|
+
env_var['AWS_ACCESS_KEY'] = params[:key]
|
129
|
+
end
|
130
|
+
|
131
|
+
if params[:secret]
|
132
|
+
env_var['AWS_SECRET_ACCESS_KEY'] = params[:secret]
|
133
|
+
env_var['AWS_SECRET_KEY'] = params[:secret]
|
134
|
+
end
|
135
|
+
|
136
|
+
if params[:token]
|
137
|
+
env_var['AWS_SECURITY_TOKEN'] = params[:token]
|
138
|
+
env_var['AWS_SESSION_TOKEN'] = params[:token]
|
139
|
+
end
|
140
|
+
env_var
|
141
|
+
end
|
142
|
+
|
104
143
|
# Verify Credentials are active and valid
|
105
144
|
#
|
106
145
|
# @param [String] key The aws_access_key_id
|
data/lib/awskeyring/version.rb
CHANGED
data/lib/awskeyring_command.rb
CHANGED
@@ -65,13 +65,19 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
65
65
|
|
66
66
|
desc 'env ACCOUNT', I18n.t('env.desc')
|
67
67
|
method_option 'no-token', type: :boolean, aliases: '-n', desc: I18n.t('method_option.notoken'), default: false
|
68
|
+
method_option 'unset', type: :boolean, aliases: '-u', desc: I18n.t('method_option.unset'), default: false
|
68
69
|
# Print Env vars
|
69
70
|
def env(account = nil)
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
71
|
+
if options['unset']
|
72
|
+
put_env_string(account: nil, key: nil, secret: nil, token: nil)
|
73
|
+
else
|
74
|
+
account = ask_check(
|
75
|
+
existing: account, message: I18n.t('message.account'),
|
76
|
+
validator: Awskeyring.method(:account_exists)
|
77
|
+
)
|
78
|
+
cred = age_check_and_get(account: account, no_token: options['no-token'])
|
79
|
+
put_env_string(cred)
|
80
|
+
end
|
75
81
|
end
|
76
82
|
|
77
83
|
desc 'json ACCOUNT', I18n.t('json.desc')
|
@@ -100,7 +106,7 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
100
106
|
exit 1
|
101
107
|
end
|
102
108
|
cred = age_check_and_get(account: account, no_token: options['no-token'])
|
103
|
-
env_vars =
|
109
|
+
env_vars = Awskeyring::Awsapi.get_env_array(cred)
|
104
110
|
begin
|
105
111
|
pid = Process.spawn(env_vars, command.join(' '))
|
106
112
|
Process.wait pid
|
@@ -419,27 +425,10 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
419
425
|
self.class.all_commands[command].options.values.map(&:switch_name)
|
420
426
|
end
|
421
427
|
|
422
|
-
def env_vars(cred)
|
423
|
-
env_var = {}
|
424
|
-
env_var['AWS_DEFAULT_REGION'] = 'us-east-1' unless Awskeyring::Awsapi.region
|
425
|
-
env_var['AWS_ACCOUNT_NAME'] = cred[:account]
|
426
|
-
env_var['AWS_ACCESS_KEY_ID'] = cred[:key]
|
427
|
-
env_var['AWS_ACCESS_KEY'] = cred[:key]
|
428
|
-
env_var['AWS_SECRET_ACCESS_KEY'] = cred[:secret]
|
429
|
-
env_var['AWS_SECRET_KEY'] = cred[:secret]
|
430
|
-
if cred[:token]
|
431
|
-
env_var['AWS_SECURITY_TOKEN'] = cred[:token]
|
432
|
-
env_var['AWS_SESSION_TOKEN'] = cred[:token]
|
433
|
-
end
|
434
|
-
env_var
|
435
|
-
end
|
436
|
-
|
437
428
|
def put_env_string(cred)
|
438
|
-
env_var =
|
429
|
+
env_var = Awskeyring::Awsapi.get_env_array(cred)
|
439
430
|
env_var.each { |var, value| puts "export #{var}=\"#{value}\"" }
|
440
|
-
|
441
|
-
puts 'unset AWS_SECURITY_TOKEN' unless cred[:token]
|
442
|
-
puts 'unset AWS_SESSION_TOKEN' unless cred[:token]
|
431
|
+
Awskeyring::Awsapi::AWS_ENV_VARS.each { |key| puts "unset #{key}" unless env_var.key?(key) }
|
443
432
|
end
|
444
433
|
|
445
434
|
def ask_check(existing:, message:, secure: false, optional: false, validator: nil)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awskeyring
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tristan Morgan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-04-
|
11
|
+
date: 2019-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-iam
|