envme 0.1.4 → 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 +16 -10
- data/lib/envme/vars.rb +9 -10
- data/lib/envme/version.rb +1 -1
- data/spec/vars_spec.rb +21 -10
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c1ec39ab7cdf49a40801b6428baa94be80eb4e4
|
4
|
+
data.tar.gz: 34881da0634db7a3cab73cdf661876225521c024
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea15ffbd4f8de393d064f3d467b404f5181e30d31f265d9b63ad2def51cc8d1315011987627e8771e076512ceb1daf0075ea716c88f2983f2ef0b9321a55d64f
|
7
|
+
data.tar.gz: e036e7f40af9e6ebc8f9fc8dbd7cc2ba171ae9d593865284e2dbfbb6c55056a9cad87cad3e027acae6d1e6ef6720ea9171237687581cc9e782e8e8b4b3a85ebe
|
data/README.md
CHANGED
@@ -4,7 +4,9 @@ Envme is a Ruby wrapper around hashicorp's [envconsul](https://github.com/hashic
|
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
|
-
|
7
|
+
```shell
|
8
|
+
$ gem install envme
|
9
|
+
```
|
8
10
|
|
9
11
|
Or add to your Gemfile
|
10
12
|
|
@@ -24,32 +26,36 @@ gem 'envme', '>=0.1.2'
|
|
24
26
|
end
|
25
27
|
```
|
26
28
|
|
27
|
-
### Get
|
29
|
+
### Get
|
30
|
+
|
31
|
+
Grab everything at specified prefix:
|
28
32
|
|
29
33
|
```ruby
|
30
|
-
Envme::Vars.
|
34
|
+
Envme::Vars.get('test/prefix')
|
31
35
|
=> ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com"]
|
32
36
|
```
|
33
37
|
|
34
|
-
|
38
|
+
Limit return by passing in a search string:
|
35
39
|
|
36
40
|
```ruby
|
37
|
-
Envme::Vars.
|
41
|
+
Envme::Vars.get('test/prefix', 'rest')
|
38
42
|
=> ["REST_ENDPOINT=rest.endpoint.com"]
|
39
43
|
|
40
|
-
Envme::Vars.
|
44
|
+
Envme::Vars.get('test/prefix', 'db')
|
41
45
|
=> ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
|
46
|
+
```
|
42
47
|
|
43
|
-
|
48
|
+
Using multiple search strings:
|
44
49
|
|
45
|
-
|
50
|
+
```ruby
|
51
|
+
Envme::Vars.get('test/prefix', 'db', 'rest')
|
46
52
|
=> ["DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com", "DB_ENDPOINT=db.endpoint.com"]
|
47
53
|
```
|
48
54
|
|
49
55
|
### Sanitizing return values
|
50
56
|
|
51
57
|
```ruby
|
52
|
-
vars = Envme::Vars.
|
58
|
+
vars = Envme::Vars.get('test', 'db')
|
53
59
|
=> ["PREFIX_DB_ENDPOINT=db.endpoint.com", "PREFIX_DB_PASSWD=p@s$W0rd", "PREFIX_DB_USERNAME=dbuser"]
|
54
60
|
|
55
61
|
Envme::Vars.sanitize(vars, 'prefix')
|
@@ -59,7 +65,7 @@ Envme::Vars.sanitize(vars, 'prefix')
|
|
59
65
|
### Building exports and File builder scripts
|
60
66
|
|
61
67
|
```ruby
|
62
|
-
vars = Envme::Vars.
|
68
|
+
vars = Envme::Vars.get('test/prefix', 'db')
|
63
69
|
=> ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
|
64
70
|
|
65
71
|
puts Envme.build_exports(vars)
|
data/lib/envme/vars.rb
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
module Envme
|
2
2
|
class Vars < Envme::CommandRunner
|
3
3
|
|
4
|
-
def self.
|
5
|
-
env
|
6
|
-
|
4
|
+
def self.get(prefix, *search_strings)
|
5
|
+
env = `env`.split("\n")
|
6
|
+
consul_vars = run(prefix).split("\n") - env
|
7
|
+
env_vars = consul_vars.select{ |var| !var.split("=")[0].nil? }
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
limit_to_search(env_vars, search_strings)
|
9
|
+
if search_strings.empty?
|
10
|
+
env_vars
|
11
|
+
else
|
12
|
+
limit_to_search(env_vars, search_strings)
|
13
|
+
end
|
15
14
|
end
|
16
15
|
|
17
16
|
def self.sanitize(vars, search)
|
data/lib/envme/version.rb
CHANGED
data/spec/vars_spec.rb
CHANGED
@@ -11,27 +11,38 @@ describe Envme::Vars do
|
|
11
11
|
allow(Envme::CommandRunner).to receive(:run) { envconsul_data }
|
12
12
|
end
|
13
13
|
|
14
|
-
context "#
|
15
|
-
it "calls run
|
14
|
+
context "#get" do
|
15
|
+
it "calls run" do
|
16
16
|
prefix = 'test/prefix'
|
17
17
|
expect(Envme::CommandRunner).to receive(:run).with(prefix)
|
18
18
|
|
19
|
-
Envme::Vars.
|
19
|
+
Envme::Vars.get(prefix)
|
20
20
|
end
|
21
21
|
|
22
22
|
it "returns an Array" do
|
23
23
|
prefix = 'test/prefix'
|
24
24
|
|
25
|
-
env_vars = Envme::Vars.
|
25
|
+
env_vars = Envme::Vars.get(prefix)
|
26
26
|
expect(env_vars).to be_kind_of(Array)
|
27
27
|
end
|
28
|
-
end
|
29
28
|
|
30
|
-
|
31
|
-
|
29
|
+
it "returns all if no search string is given" do
|
30
|
+
prefix = 'test/prefix'
|
31
|
+
|
32
|
+
expected = [
|
33
|
+
"COMPONENT_PARAM1=first_param",
|
34
|
+
"COMPONENT_PARAM2=second PaRam",
|
35
|
+
"ENVVAR_PARAM3=env var"
|
36
|
+
]
|
37
|
+
|
38
|
+
env_vars = Envme::Vars.get(prefix)
|
39
|
+
expect(env_vars).to eq(expected)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns only values matching search params" do
|
32
43
|
prefix = 'test/prefix'
|
33
44
|
|
34
|
-
vars = Envme::Vars.
|
45
|
+
vars = Envme::Vars.get(prefix, 'ENVVAR')
|
35
46
|
expect(vars.size).to eq(1)
|
36
47
|
expect(vars[0]).to eq('ENVVAR_PARAM3=env var')
|
37
48
|
expect(vars).not_to include("COMPONENT_PARAM2=second PaRam")
|
@@ -40,7 +51,7 @@ describe Envme::Vars do
|
|
40
51
|
it "can accept multiple search strings" do
|
41
52
|
prefix = 'test/prefix'
|
42
53
|
|
43
|
-
vars = Envme::Vars.
|
54
|
+
vars = Envme::Vars.get(prefix, 'ENVVAR', 'COMPONENT')
|
44
55
|
expect(vars.size).to eq(3)
|
45
56
|
expect(vars[0]).to eq('COMPONENT_PARAM1=first_param')
|
46
57
|
end
|
@@ -56,7 +67,7 @@ describe Envme::Vars do
|
|
56
67
|
allow(Envme::CommandRunner).to receive(:run) { envconsul_data }
|
57
68
|
prefix = 'test/prefix'
|
58
69
|
|
59
|
-
expect{Envme::Vars.
|
70
|
+
expect{Envme::Vars.get(prefix, 'COMPONENT')}.to_not raise_error
|
60
71
|
end
|
61
72
|
end
|
62
73
|
|