awskeyring 0.9.0 → 0.10.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 +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
|