env_setup 0.1.4 → 0.1.5
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/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
|