env_json 0.1.0 → 0.2.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/README.md +8 -0
- data/lib/env_json/rails_tasks.rb +25 -0
- data/lib/env_json/railtie.rb +5 -1
- data/lib/env_json/version.rb +1 -1
- data/lib/env_json.rb +7 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f7970bc17f55af5930aee2d99e760e8936ebaf8
|
4
|
+
data.tar.gz: 6f3b6cf9497ad46c951f5f16a05606b4a5a2f3e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd83b2885239d351efa282f245cee293bf5bf05141aef30178c034ab65e5b72021c5159060d88bbd38bbdc9513a5afb0a1857c09abf876cf839b1a88e4498303
|
7
|
+
data.tar.gz: 3c2ad3c5a415234ba6e79ce7a3f5f54d92082cd98e13f4428e711ee9b4b01d08f2254bf12334cc5c03204e136bd26b4da5395d4c7fac59576bd9c07f7b6b9c37
|
data/README.md
CHANGED
@@ -42,6 +42,14 @@ About the JSON format:
|
|
42
42
|
* keys prefixed with _ will be ignored
|
43
43
|
* keys development, test, staging, production will be ignored if they don't match with current environment
|
44
44
|
|
45
|
+
### ElasticBeanstalk
|
46
|
+
|
47
|
+
export env variables defined in config/env.json to Amazon ElasticBeanstalk environment
|
48
|
+
|
49
|
+
```
|
50
|
+
bundle exec rake env_json:eb
|
51
|
+
```
|
52
|
+
|
45
53
|
## Development
|
46
54
|
|
47
55
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'pty'
|
2
|
+
require 'shellwords'
|
3
|
+
|
4
|
+
namespace :env_json do
|
5
|
+
desc 'print env_json computed environment'
|
6
|
+
task print_env: :environment do
|
7
|
+
pp EnvJson.env
|
8
|
+
end
|
9
|
+
|
10
|
+
desc 'load env into ElasticBeanstalk'
|
11
|
+
task eb: :environment do
|
12
|
+
eb_formated_env = EnvJson.env.map{|key,value| "#{Shellwords.escape key}=#{Shellwords.escape value}" }.join(' ')
|
13
|
+
begin
|
14
|
+
PTY.spawn("eb setenv -v #{eb_formated_env}") do |stdin, stdout, pid|
|
15
|
+
begin
|
16
|
+
stdin.each { |line| print line }
|
17
|
+
rescue Errno::EIO
|
18
|
+
puts "Errno:EIO error, but this probably just means that the process has finished giving output"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
rescue PTY::ChildExited
|
22
|
+
puts "The child process exited!"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/env_json/railtie.rb
CHANGED
@@ -5,7 +5,11 @@ module EnvJson
|
|
5
5
|
|
6
6
|
# railtie hook to load env with Rails.env as environment name and config/env.json files as source
|
7
7
|
def load_env
|
8
|
-
EnvJson.load_env_from_source_with_overrides(Rails.root.join('config/env.json'))
|
8
|
+
EnvJson.load_env_from_source_with_overrides(Rails.root.join('config/env.json'), Rails.env)
|
9
|
+
end
|
10
|
+
|
11
|
+
rake_tasks do
|
12
|
+
load File.join(__dir__, 'rails_tasks.rb')
|
9
13
|
end
|
10
14
|
end
|
11
15
|
end
|
data/lib/env_json/version.rb
CHANGED
data/lib/env_json.rb
CHANGED
@@ -12,11 +12,17 @@ module EnvJson
|
|
12
12
|
# @return [Hash] the loaded environment variables
|
13
13
|
def load_env_from_source_with_overrides(json, environment_name=nil)
|
14
14
|
json = JSON.load(json)
|
15
|
-
generate_configuration(json, environment_name).tap do |configuration|
|
15
|
+
@env = generate_configuration(json, environment_name).tap do |configuration|
|
16
16
|
apply_env(configuration)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
# return the consolidated env built by {EnvJson#load_env_from_source_with_overrides}
|
21
|
+
# @return [Hash] the environment variables loaded from JSON
|
22
|
+
def env
|
23
|
+
@env or fail 'call load_env_from_source_with_overrides first'
|
24
|
+
end
|
25
|
+
|
20
26
|
# @!visibility private
|
21
27
|
def generate_configuration(raw_hash, environment_name=nil, configuration={})
|
22
28
|
raw_hash.inject(configuration) do |conf, (key,value)|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: env_json
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vincent Hellot
|
@@ -115,6 +115,7 @@ files:
|
|
115
115
|
- bin/setup
|
116
116
|
- env_json.gemspec
|
117
117
|
- lib/env_json.rb
|
118
|
+
- lib/env_json/rails_tasks.rb
|
118
119
|
- lib/env_json/railtie.rb
|
119
120
|
- lib/env_json/version.rb
|
120
121
|
homepage: http://github.com/hellvinz/env_json
|