env_setup 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/env_setup +0 -1
- data/lib/env_setup/builder/json.rb +14 -0
- data/lib/env_setup/env_builder.rb +3 -1
- data/lib/env_setup/version.rb +1 -1
- data/spec/env_setup/builder/json_spec.rb +18 -0
- data/spec/env_setup/env_builder_spec.rb +8 -66
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fab5063a61c7e2b0547746897fd1a7f97670260536dd4e6241df6cf93fb1c615
|
4
|
+
data.tar.gz: a4a8d30d9f3349d0e570313d446a35fbac0eec88460f9097623a731dc38fb05d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad71c57f6057785bae9e9723e265b928bc02412b4eb84d604c5b89429d0da2bf2920d8896b5ec7bf5b53410cbb79fc7d52086b5fa294725b6477bce18988e1ec
|
7
|
+
data.tar.gz: 040e5a7b9b8b57d4d24cbdb6faab945b900f34ad2e47677f9c52e8050bacda99a1644bdffb368cf0eb39d0990d487d4d473ed575edf4922d8e0f6874ae55fc13
|
data/bin/env_setup
CHANGED
@@ -5,7 +5,6 @@ require 'json'
|
|
5
5
|
|
6
6
|
inputs = Hash[ARGV.flat_map { |s| s.scan(/--?([^=\s]+)(?:=(\S+))?/) }]
|
7
7
|
template_file = inputs.delete('TEMPLATE')
|
8
|
-
puts "template #{template_file}"
|
9
8
|
template = JSON.parse(File.read(template_file))
|
10
9
|
env_file = inputs.delete('ENV_FILE') || '.env'
|
11
10
|
aws_access_key = inputs.delete('AWS_ACCESS_KEY')
|
@@ -5,6 +5,7 @@ require 'env_setup/builder/pattern'
|
|
5
5
|
require 'env_setup/builder/input'
|
6
6
|
require 'env_setup/builder/generator'
|
7
7
|
require 'env_setup/builder/nested_value'
|
8
|
+
require 'env_setup/builder/json'
|
8
9
|
require 'aws-sdk-secretsmanager'
|
9
10
|
|
10
11
|
module EnvSetup
|
@@ -37,7 +38,8 @@ module EnvSetup
|
|
37
38
|
{ builder: EnvSetup::Builder::Pattern, if: -> { var_template['pattern'] } },
|
38
39
|
{ builder: EnvSetup::Builder::NestedValue, if: -> { var_template['value'] } },
|
39
40
|
{ builder: EnvSetup::Builder::Input, if: -> { var_template['input'] } },
|
40
|
-
{ builder: EnvSetup::Builder::Generator, if: -> { var_template['generator'] } }
|
41
|
+
{ builder: EnvSetup::Builder::Generator, if: -> { var_template['generator'] } },
|
42
|
+
{ builder: EnvSetup::Builder::Json, if: -> { var_template.is_a?(Hash) } }
|
41
43
|
].find { |option| option[:if].call }
|
42
44
|
|
43
45
|
raise "Invalid var builder: #{var_template.inspect}" unless builder
|
data/lib/env_setup/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'env_setup/builder/json'
|
3
|
+
|
4
|
+
RSpec.describe EnvSetup::Builder::Json do
|
5
|
+
let(:builder) { described_class.new(value, params) }
|
6
|
+
let(:params) { {} }
|
7
|
+
let(:value) do
|
8
|
+
{
|
9
|
+
'some' => {
|
10
|
+
'custom' => 'data'
|
11
|
+
}
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'generates json string format' do
|
16
|
+
expect(builder.call).to eq "{\"some\"=>{\"custom\"=>\"data\"}}"
|
17
|
+
end
|
18
|
+
end
|
@@ -27,6 +27,10 @@ RSpec.describe EnvSetup::EnvBuilder do
|
|
27
27
|
},
|
28
28
|
'INTEGRATION_APP_URL' => {
|
29
29
|
'pattern' => '{{INTEGRATION_APP_HOST}}/api/integrate'
|
30
|
+
},
|
31
|
+
'DOMAINS' => {
|
32
|
+
'APP' => ['abc.com', 'def.com'],
|
33
|
+
'ADMIN' => ['abc-admin.com', 'def-admin.com']
|
30
34
|
}
|
31
35
|
}
|
32
36
|
end
|
@@ -45,7 +49,8 @@ RSpec.describe EnvSetup::EnvBuilder do
|
|
45
49
|
'APP_SECRET' => secret,
|
46
50
|
'APP_PASSWORD' => salt,
|
47
51
|
'INTEGRATION_APP_HOST' => inputs['INTEGRATION_APP_HOST'],
|
48
|
-
'INTEGRATION_APP_URL' => "#{inputs['INTEGRATION_APP_HOST']}/api/integrate"
|
52
|
+
'INTEGRATION_APP_URL' => "#{inputs['INTEGRATION_APP_HOST']}/api/integrate",
|
53
|
+
'DOMAINS' => '{"APP"=>["abc.com", "def.com"], "ADMIN"=>["abc-admin.com", "def-admin.com"]}'
|
49
54
|
}
|
50
55
|
end
|
51
56
|
|
@@ -88,7 +93,8 @@ RSpec.describe EnvSetup::EnvBuilder do
|
|
88
93
|
'APP_SECRET' => secret,
|
89
94
|
'APP_PASSWORD' => salt,
|
90
95
|
'INTEGRATION_APP_HOST' => inputs['INTEGRATION_APP_HOST'],
|
91
|
-
'INTEGRATION_APP_URL' => "#{inputs['INTEGRATION_APP_HOST']}/api/integrate"
|
96
|
+
'INTEGRATION_APP_URL' => "#{inputs['INTEGRATION_APP_HOST']}/api/integrate",
|
97
|
+
'DOMAINS' => '{"APP"=>["abc.com", "def.com"], "ADMIN"=>["abc-admin.com", "def-admin.com"]}'
|
92
98
|
}
|
93
99
|
end
|
94
100
|
|
@@ -108,70 +114,6 @@ RSpec.describe EnvSetup::EnvBuilder do
|
|
108
114
|
expect(described_class.new(inputs).build_json).to eq expected_json
|
109
115
|
end
|
110
116
|
end
|
111
|
-
|
112
|
-
context 'test' do
|
113
|
-
before do
|
114
|
-
allow_any_instance_of(EnvSetup::Builder::Generator).to receive(:secret).and_return("secret")
|
115
|
-
allow_any_instance_of(EnvSetup::Builder::Generator).to receive(:salt).and_return("salt")
|
116
|
-
|
117
|
-
allow(EnvSetup).to receive(:configuration).and_return(
|
118
|
-
EnvSetup::Configuration.new.tap do |config|
|
119
|
-
config.env_name = 'pr-123'
|
120
|
-
config.template = template
|
121
|
-
end
|
122
|
-
)
|
123
|
-
end
|
124
|
-
|
125
|
-
let(:template) do
|
126
|
-
{
|
127
|
-
"ASSET_HOST": {
|
128
|
-
"pattern": "https://{{ENV_NAME}}.{{DOMAIN}}"
|
129
|
-
},
|
130
|
-
"CANONICAL_URL": {
|
131
|
-
"pattern": "https://{{ENV_NAME}}.{{DOMAIN}}"
|
132
|
-
},
|
133
|
-
"DISCOURSE_AUTH_DOMAIN": {
|
134
|
-
"pattern": "https://{{ENV_NAME}}.goeatrightnow.com"
|
135
|
-
},
|
136
|
-
"DOMAIN_NAME": {
|
137
|
-
"input": "DOMAIN"
|
138
|
-
},
|
139
|
-
"MESSENGER_URI": {
|
140
|
-
"input": "MESSENGER_URI"
|
141
|
-
},
|
142
|
-
"MSCOMMUNITY_URL": {
|
143
|
-
"input": "MSCOMMUNITY_URL"
|
144
|
-
},
|
145
|
-
"PROGRAM_BBS_APP_HOST": {
|
146
|
-
"pattern": "{{ENV_NAME}}.breathebysharecare.com"
|
147
|
-
},
|
148
|
-
"PROGRAM_CTQ_APP_HOST": {
|
149
|
-
"pattern": "{{ENV_NAME}}.cravingtoquit.com"
|
150
|
-
},
|
151
|
-
"PROGRAM_ERN_APP_HOST": {
|
152
|
-
"pattern": "{{ENV_NAME}}.goeatrightnow.com"
|
153
|
-
},
|
154
|
-
"PROGRAM_UA_APP_HOST": {
|
155
|
-
"pattern": "{{ENV_NAME}}.unwindinganxiety.com"
|
156
|
-
},
|
157
|
-
"PROGRAM_UFS_APP_HOST": {
|
158
|
-
"pattern": "{{ENV_NAME}}.unwindingfromsharecare.com"
|
159
|
-
}
|
160
|
-
}
|
161
|
-
end
|
162
|
-
|
163
|
-
let(:inputs) do
|
164
|
-
{
|
165
|
-
'DOMAIN' => 'mindsciences.net',
|
166
|
-
'MESSENGER_URI' => 'messenger.mindsciences.net',
|
167
|
-
'MSCOMMUNITY_URL' => 'mscom.mindsciences.net'
|
168
|
-
}
|
169
|
-
end
|
170
|
-
|
171
|
-
it 'generate json' do
|
172
|
-
described_class.new(inputs).build_json
|
173
|
-
end
|
174
|
-
end
|
175
117
|
end
|
176
118
|
|
177
119
|
describe '.build_var' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: env_setup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonatas Daniel Hermann
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- lib/env_setup/builder/base.rb
|
97
97
|
- lib/env_setup/builder/generator.rb
|
98
98
|
- lib/env_setup/builder/input.rb
|
99
|
+
- lib/env_setup/builder/json.rb
|
99
100
|
- lib/env_setup/builder/nested_value.rb
|
100
101
|
- lib/env_setup/builder/pattern.rb
|
101
102
|
- lib/env_setup/configuration.rb
|
@@ -103,6 +104,7 @@ files:
|
|
103
104
|
- lib/env_setup/version.rb
|
104
105
|
- spec/env_setup/builder/generator_spec.rb
|
105
106
|
- spec/env_setup/builder/input_spec.rb
|
107
|
+
- spec/env_setup/builder/json_spec.rb
|
106
108
|
- spec/env_setup/builder/pattern_spec.rb
|
107
109
|
- spec/env_setup/env_builder_spec.rb
|
108
110
|
- spec/env_setup_spec.rb
|
@@ -134,5 +136,6 @@ test_files:
|
|
134
136
|
- spec/env_setup_spec.rb
|
135
137
|
- spec/env_setup/env_builder_spec.rb
|
136
138
|
- spec/env_setup/builder/generator_spec.rb
|
139
|
+
- spec/env_setup/builder/json_spec.rb
|
137
140
|
- spec/env_setup/builder/pattern_spec.rb
|
138
141
|
- spec/env_setup/builder/input_spec.rb
|