envme 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +46 -13
  3. data/lib/envme.rb +1 -1
  4. data/lib/envme/version.rb +1 -1
  5. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2c1ec39ab7cdf49a40801b6428baa94be80eb4e4
4
- data.tar.gz: 34881da0634db7a3cab73cdf661876225521c024
2
+ SHA256:
3
+ metadata.gz: 5098e39b92393685c4daedd5b2ef8e86ff1183dc1be21147c3c8c98e82a395fc
4
+ data.tar.gz: cdc20d80247ea1f9f7f6ee0390f8bcc438facdcd516f0f399f3135b717a565fe
5
5
  SHA512:
6
- metadata.gz: ea15ffbd4f8de393d064f3d467b404f5181e30d31f265d9b63ad2def51cc8d1315011987627e8771e076512ceb1daf0075ea716c88f2983f2ef0b9321a55d64f
7
- data.tar.gz: e036e7f40af9e6ebc8f9fc8dbd7cc2ba171ae9d593865284e2dbfbb6c55056a9cad87cad3e027acae6d1e6ef6720ea9171237687581cc9e782e8e8b4b3a85ebe
6
+ metadata.gz: a4157b85087360e40ad79f71744d8b7123c5f66791f8e804b96aa97b0b15e1d75cc241f5ae2c91ca6e43efb5b6eda191459e01c5a0ce3d105afee2991b6b52e3
7
+ data.tar.gz: d86cacd96befe38118ee37e725bef9298566718ef5540c8136ffd275083c36aeb1e06969c8467fb9d9107626a1a189686df1cc464ce77a0127ed469f2808cc2e
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Envme [![Gem Version](https://badge.fury.io/rb/envme.svg)](http://badge.fury.io/rb/envme) [![Circle CI](https://circleci.com/gh/reppard/envme.svg?style=svg)](https://circleci.com/gh/reppard/envme)
2
2
 
3
- Envme is a Ruby wrapper around hashicorp's [envconsul](https://github.com/hashicorp/envconsul). It fetches k/v data from Consul using a user specified prefix which can then be used to configure your app with the returned enviroment variables. It can be useful for building AWS user data or generating systemd service files.
3
+ Envme is a Ruby wrapper around hashicorp's [envconsul](https://github.com/hashicorp/envconsul). It fetches k/v data from Consul using a user specified prefix which can then be used to configure your app with the returned enviroment variables. It can be useful for building AWS user data or generating systemd service files. Currently works with envconsul v0.5.0.
4
4
 
5
5
  ## Installation
6
6
 
@@ -13,7 +13,7 @@ Or add to your Gemfile
13
13
  ```ruby
14
14
  source 'https://rubygems.org'
15
15
 
16
- gem 'envme', '>=0.1.2'
16
+ gem 'envme', '>=0.2.0'
17
17
  ```
18
18
 
19
19
  ## Usage
@@ -32,56 +32,89 @@ Grab everything at specified prefix:
32
32
 
33
33
  ```ruby
34
34
  Envme::Vars.get('test/prefix')
35
- => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com"]
35
+ # => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com"]
36
36
  ```
37
37
 
38
38
  Limit return by passing in a search string:
39
39
 
40
40
  ```ruby
41
41
  Envme::Vars.get('test/prefix', 'rest')
42
- => ["REST_ENDPOINT=rest.endpoint.com"]
42
+ # => ["REST_ENDPOINT=rest.endpoint.com"]
43
43
 
44
44
  Envme::Vars.get('test/prefix', 'db')
45
- => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
45
+ # => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
46
46
  ```
47
47
 
48
48
  Using multiple search strings:
49
49
 
50
50
  ```ruby
51
51
  Envme::Vars.get('test/prefix', 'db', 'rest')
52
- => ["DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com", "DB_ENDPOINT=db.endpoint.com"]
52
+ # => ["DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com", "DB_ENDPOINT=db.endpoint.com"]
53
53
  ```
54
54
 
55
55
  ### Sanitizing return values
56
56
 
57
57
  ```ruby
58
58
  vars = Envme::Vars.get('test', 'db')
59
- => ["PREFIX_DB_ENDPOINT=db.endpoint.com", "PREFIX_DB_PASSWD=p@s$W0rd", "PREFIX_DB_USERNAME=dbuser"]
59
+ # => ["PREFIX_DB_ENDPOINT=db.endpoint.com", "PREFIX_DB_PASSWD=p@s$W0rd", "PREFIX_DB_USERNAME=dbuser"]
60
60
 
61
61
  Envme::Vars.sanitize(vars, 'prefix')
62
- => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
62
+ # => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
63
63
  ```
64
64
 
65
- ### Building exports and File builder scripts
65
+ ### Building scripts
66
+
67
+ Exports for script:
66
68
 
67
69
  ```ruby
68
70
  vars = Envme::Vars.get('test/prefix', 'db')
69
- => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
71
+ # => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
72
+
73
+ exports = Envme.build_exports(vars)
74
+ # => "export DB_ENDPOINT=db.endpoint.com\nexport DB_PASSWD=p@s$W0rd\nexport DB_USERNAME=dbuser"
70
75
 
71
- puts Envme.build_exports(vars)
76
+ start_script = <<-eos
77
+ #!/bin/bash
78
+ #{exports}
79
+ ruby app.rb
80
+ eos
81
+ # => "#!/bin/bash\nexport DB_ENDPOINT=db.endpoint.com\nexport DB_PASSWD=p@s$W0rd\nexport DB_USERNAME=dbuser\nruby app.rb\n"
72
82
 
83
+ puts start_script
84
+
85
+ #!/bin/bash
73
86
  export DB_ENDPOINT=db.endpoint.com
74
87
  export DB_PASSWD=p@s$W0rd
75
88
  export DB_USERNAME=dbuser
89
+ ruby app.rb
90
+ => nil
91
+ ```
92
+
93
+ Populate a systemd EnvironmentFile:
94
+
95
+ ```ruby
96
+ vars = Envme::Vars.get('test/prefix', 'rest', 'db')
97
+ # => ["DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com", "DB_ENDPOINT=db.endpoint.com"]
76
98
 
99
+ file_builder = Envme.file_builder(vars, '/etc/sysconfig/my_service.service')
100
+ # => "echo DB_ENDPOINT=db.endpoint.com >> /etc/sysconfig/my_service.service\necho DB_PASSWD=p@s$W0rd >> /etc/sysconfig/my_service.service\necho DB_USERNAME=dbuser >> /etc/sysconfig/my_service.service\necho REST_ENDPOINT=rest.endpoint.com >> /etc/sysconfig/my_service.service"
77
101
 
78
- # Build a script to populate a systemd EnvironmentFile
102
+ user_data = <<-eos
103
+ #!/bin/bash
104
+ #{file_builder}
105
+ systemctl my_service start
106
+ eos
107
+ => "#!/bin/bash\necho DB_ENDPOINT=db.endpoint.com >> /etc/sysconfig/my_service.service\necho DB_PASSWD=p@s$W0rd >> /etc/sysconfig/my_service.service\necho DB_USERNAME=dbuser >> /etc/sysconfig/my_service.service\necho REST_ENDPOINT=rest.endpoint.com >> /etc/sysconfig/my_service.service\nsystemctl my_service start\n"
79
108
 
80
- puts Envme.file_builder(vars, '/etc/sysconfig/my_service.service')
109
+ puts user_data
81
110
 
111
+ #!/bin/bash
82
112
  echo DB_ENDPOINT=db.endpoint.com >> /etc/sysconfig/my_service.service
83
113
  echo DB_PASSWD=p@s$W0rd >> /etc/sysconfig/my_service.service
84
114
  echo DB_USERNAME=dbuser >> /etc/sysconfig/my_service.service
115
+ echo REST_ENDPOINT=rest.endpoint.com >> /etc/sysconfig/my_service.service
116
+ systemctl my_service start
117
+ => nil
85
118
  ```
86
119
 
87
120
  Inspired by [Diplomat](https://github.com/WeAreFarmGeek/diplomat)
@@ -29,7 +29,7 @@ module Envme
29
29
 
30
30
  def file_builder(var_collection, filename)
31
31
  var_collection.collect{ |var|
32
- "echo #{var} >> #{filename}"
32
+ "echo '#{var}' >> #{filename}"
33
33
  }.sort.join("\n")
34
34
  end
35
35
  end
@@ -1,3 +1,3 @@
1
1
  module Envme
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: envme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - 'Reppard Walker '
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-15 00:00:00.000000000 Z
11
+ date: 2020-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -117,8 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  - !ruby/object:Gem::Version
118
118
  version: '0'
119
119
  requirements: []
120
- rubyforge_project:
121
- rubygems_version: 2.2.2
120
+ rubygems_version: 3.0.1
122
121
  signing_key:
123
122
  specification_version: 4
124
123
  summary: Envme is a Ruby wrapper for envconsul with a few extras.