envred 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 97af96bcff96f52e3fc3e7187baf47ce0ceb7ed8
4
- data.tar.gz: 2c060c0b6fddb7de2edf675af9a733f9f2d1372b
3
+ metadata.gz: f3ee6678715c0bd19243e5232a651a9108d68034
4
+ data.tar.gz: eb891088a7f599f4d0fca331bb426ced301af346
5
5
  SHA512:
6
- metadata.gz: 69ae0ee5f98509150b515b84a590d099d1aa1b0a46af7321e37228e4025a34586fbfb3500baff4255048bb21dcf38f589665d4e74af113956030a93ff616eb2d
7
- data.tar.gz: a36fa4a1fb622b70adb4a659a1cd6f210f7c0ef17f0d22df6324fe39ec2847ea39176b3e56f4e6680c4fe97e2a8779200f8f870500aeeaa4928e8abd57ce194b
6
+ metadata.gz: 29226a5a0c2fd8d1b441288d932db0ecebc35494aaa8870b64ab424dc03c4b153cd8ebc6bad980fe041924296882900f7d70e0603e75e5c90b93848b408358ab
7
+ data.tar.gz: 073d098e0da64f28020857a047aa973589f30e3857fa8bc75569fa3ccea0dcc0dd1ac0ec240c4c4fb8e41f5baeef22e4615053bcafeb536a7dd3021f941b3087
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  **Environment config loader backed by Redis**
4
4
 
5
+ ![Build Status](https://app.wercker.com/status/0aa6c6c8ed8cd84fb608604ae7dc7604/s/)
6
+
5
7
  This is a simple tool in flavor of `envdir` from daemontools package. Instead of
6
8
  loading environment from directory, it loads it for redis hash specified in
7
9
  the central url. See examples section for details.
@@ -16,24 +18,28 @@ Install via rubygems:
16
18
 
17
19
  Set some variables first:
18
20
 
19
- $ envred localhost:6379/0/~myapp set FOO 1 BAR 2 BAZ 3
21
+ $ envred -c localhost:6379/0 -a myapp set FOO 1 BAR 2 BAZ 3
20
22
 
21
- The `localhost:6379` is host anf port of Redis server, `0` is the number of
22
- the database to load stuff from, finally, `myapp` is the key which keeps
23
- the data as hash.
23
+ The `localhost:6379/0` is host, port and number of Redis database to load
24
+ stuff from, and `myapp` is the key which keeps the data as hash.
24
25
 
25
26
  Now you can run any application with environment loaded from Redis server:
26
27
 
27
- $ envred localhost:6379/0/~myapp wrap myapp --do something
28
+ $ envred -c localhost:6379/0 -a myapp wrap myapp --do something
28
29
 
29
30
  To list all your variables use:
30
31
 
31
- $ envred localhost:6379/0/~myapp list
32
+ $ envred -c localhost:6379/0~myapp list
32
33
 
33
34
  You can remove specific keys or purge all config:
34
35
 
35
- $ envred localhost:6379/0/~myapp unset FOO BAR
36
- $ envred localhost:6379/0/~myapp purge
36
+ $ envred -c localhost:6379/0 -a myapp unset FOO BAR
37
+ $ envred -c localhost:6379/0 -a myapp purge
38
+
39
+ Note! Instead of specifying central url all the time, you can store it in
40
+ `ENVRED_CENTRAL` env variable:
41
+
42
+ $ export ENVRED_CENTRAL=localhost:6379/0
37
43
 
38
44
  ## Hacking
39
45
 
@@ -54,6 +60,6 @@ Now you should be able to run tests:
54
60
 
55
61
  ## Copyrights
56
62
 
57
- Copyright (c) by Kris Kovalik <hi@kkvlk.me>
63
+ Copyright (c) by Kris Kovalik <<hi@kkvlk.me>>
58
64
 
59
65
  Released under MIT License. Check [LICENSE.txt](LICENSE.txt) for details.
data/bin/envred CHANGED
@@ -11,8 +11,19 @@ program_desc "Environment configuration backed with Redis."
11
11
  desc "The URL of central env server."
12
12
  flag [:c, :central], :default_value => ENV['ENVRED_CENTRAL']
13
13
 
14
+ desc "The name of the app."
15
+ flag [:a, :app]
16
+
14
17
  pre do |globals, command, options, args|
15
- $envred = Envred.new(globals[:central])
18
+ unless globals[:app]
19
+ help_now!("you must specify a name of the app")
20
+ end
21
+
22
+ unless globals[:central]
23
+ help_now!("you must specify address of the central server")
24
+ end
25
+
26
+ $envred = Envred.new(globals[:central], globals[:app])
16
27
  end
17
28
 
18
29
  desc "Wrap command with loaded env variables."
@@ -2,9 +2,9 @@ require "envred/version"
2
2
  require "redis"
3
3
 
4
4
  class Envred
5
- def initialize(central)
6
- @server, @app = central.split("/~")
7
- @redis = Redis.new(url: "redis://#{@server}")
5
+ def initialize(central, app)
6
+ @central, @app = central, app
7
+ @redis = Redis.new(url: "redis://#{@central}")
8
8
  end
9
9
 
10
10
  def load
@@ -1,3 +1,3 @@
1
1
  class Envred
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -6,7 +6,11 @@ describe Envred do
6
6
  end
7
7
 
8
8
  let(:central) do
9
- "#{server}/0/~test"
9
+ "#{server}/0"
10
+ end
11
+
12
+ let(:app) do
13
+ "test"
10
14
  end
11
15
 
12
16
  let(:redis) do
@@ -24,7 +28,7 @@ describe Envred do
24
28
 
25
29
  describe "#load" do
26
30
  it "loads list of set variables" do
27
- all = Envred.new(central).load
31
+ all = Envred.new(central, app).load
28
32
  all.should have(2).items
29
33
  all['foo'].should == '1'
30
34
  all['bar'].should == '2'
@@ -40,7 +44,7 @@ describe Envred do
40
44
  it "should load proper configuration and set env" do
41
45
  env = nil
42
46
 
43
- Envred.new(central).apply do
47
+ Envred.new(central, app).apply do
44
48
  env = ENV
45
49
  end
46
50
 
@@ -51,7 +55,7 @@ describe Envred do
51
55
  it "should property pass env to commands" do
52
56
  res = nil
53
57
 
54
- Envred.new(central).apply do
58
+ Envred.new(central, app).apply do
55
59
  res = `echo $foo $bar`.strip
56
60
  end
57
61
 
@@ -71,7 +75,7 @@ describe Envred do
71
75
  it "should not change existing keys" do
72
76
  res = nil
73
77
 
74
- Envred.new(central).apply do
78
+ Envred.new(central, app).apply do
75
79
  res = `echo $foo $bar`.strip
76
80
  end
77
81
 
@@ -81,7 +85,7 @@ describe Envred do
81
85
  it "should remove key if value is empty" do
82
86
  res = nil
83
87
 
84
- Envred.new(central).apply do
88
+ Envred.new(central, app).apply do
85
89
  res = `echo $foo $bar $baz`.strip
86
90
  end
87
91
 
@@ -93,15 +97,15 @@ describe Envred do
93
97
 
94
98
  describe "#set" do
95
99
  it "should save given variable if non empty" do
96
- Envred.new(central).set("foo", 1)
100
+ Envred.new(central, app).set("foo", 1)
97
101
  redis.hget("test", "foo").should == "1"
98
102
  end
99
103
  end
100
104
 
101
105
  describe "#unset" do
102
106
  it "should save given variable if non empty" do
103
- Envred.new(central).set("foo", 1)
104
- Envred.new(central).unset("foo")
107
+ Envred.new(central, app).set("foo", 1)
108
+ Envred.new(central, app).unset("foo")
105
109
  redis.hget("test", "foo").should == nil
106
110
  end
107
111
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: envred
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
  - Kris Kovalik