redis_env 0.1.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 +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +42 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/exe/redis-env +63 -0
- data/lib/redis_env/version.rb +3 -0
- data/lib/redis_env.rb +4 -0
- data/redis_env.gemspec +27 -0
- metadata +140 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 39f5722dd8619bd1e3f93efe5bc9a7658153d7ac
|
4
|
+
data.tar.gz: 93e4e4f4e5b1c717b1009bbc346058576a7c5da6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a6ab41b3bdf6b25f0eb6a3ce284ef9508731d5a7ab3b2c40f7a8aeed87eb4bb8b7429e7cd479720e81543cab60ce21c61c2a0c3ae5996e78574359c7e3a1ecf5
|
7
|
+
data.tar.gz: d92ea2c50e5dd9ea30f78c6c311a82baac5cb99827bd18a7f8cdc85e8ab6bb2e91171df39896f2089831e48de32d5765d0673233bcce5653e1b4d2558d592348
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# Redis Env
|
2
|
+
|
3
|
+
Store your environment variables in Redis.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
$ gem install redis_env
|
8
|
+
|
9
|
+
## Usage
|
10
|
+
|
11
|
+
```
|
12
|
+
Commands:
|
13
|
+
redis-env clear # Remove all environment variables
|
14
|
+
redis-env exec COMMAND # Run a COMMAND within the environment
|
15
|
+
redis-env list # List all variables
|
16
|
+
redis-env load FILE # Read an env file and load it into redis
|
17
|
+
redis-env set NAME VALUE # Set an environment variable called NAME to VALUE
|
18
|
+
redis-env unset NAME # Remove an environment variable called NAME
|
19
|
+
|
20
|
+
Options:
|
21
|
+
[--project=PROJECT] # The project these variables are for
|
22
|
+
[--redis=REDIS] # The url of the redis server
|
23
|
+
# Default: redis://localhost:6379/0
|
24
|
+
```
|
25
|
+
|
26
|
+
### Examples
|
27
|
+
|
28
|
+
Load your existing `.env` file
|
29
|
+
|
30
|
+
```
|
31
|
+
redis-env load --project my-awesome-app .env
|
32
|
+
```
|
33
|
+
|
34
|
+
Now run your app using redis-env
|
35
|
+
|
36
|
+
```
|
37
|
+
redis-env exec --project my-awesome-app rails s
|
38
|
+
```
|
39
|
+
|
40
|
+
## Contributing
|
41
|
+
|
42
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/sionide21/redis-env.
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "redis_env"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
data/exe/redis-env
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require "thor"
|
3
|
+
require "redis"
|
4
|
+
require "dotenv"
|
5
|
+
|
6
|
+
class RedisEnv < Thor
|
7
|
+
class_option :project, type: :string, desc: "The project these variables are for"
|
8
|
+
class_option :redis, type: :string, desc: "The url of the redis server", default: "redis://localhost:6379/0"
|
9
|
+
|
10
|
+
desc "set NAME VALUE", "Set an environment variable called NAME to VALUE"
|
11
|
+
def set(name, value)
|
12
|
+
client.hset(namespace, name, value)
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "load FILE", "Read an env file and load it into redis"
|
16
|
+
def load(file)
|
17
|
+
vars = Dotenv::Environment.new(file)
|
18
|
+
client.mapped_hmset(namespace, vars)
|
19
|
+
end
|
20
|
+
|
21
|
+
desc "unset NAME", "Remove an environment variable called NAME"
|
22
|
+
def unset(name)
|
23
|
+
client.hdel(namespace, name)
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "clear", "Remove all environment variables"
|
27
|
+
def clear
|
28
|
+
client.del(namespace)
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "list", "List all variables"
|
32
|
+
def list
|
33
|
+
width = env.keys.map(&:length).max
|
34
|
+
env.sort_by(&:first).each do |k, v|
|
35
|
+
puts [k.ljust(width), v].join("\t")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
desc "exec COMMAND", "Run a COMMAND within the environment"
|
40
|
+
def exec(*command)
|
41
|
+
super(env, command.join(" "))
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def namespace
|
47
|
+
"redis-env:#{project}"
|
48
|
+
end
|
49
|
+
|
50
|
+
def project
|
51
|
+
options[:project] || "__default__"
|
52
|
+
end
|
53
|
+
|
54
|
+
def client
|
55
|
+
@client ||= Redis.new(url: options[:redis])
|
56
|
+
end
|
57
|
+
|
58
|
+
def env
|
59
|
+
@env ||= client.hgetall(namespace)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
RedisEnv.start(ARGV)
|
data/lib/redis_env.rb
ADDED
data/redis_env.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'redis_env/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "redis_env"
|
8
|
+
spec.version = RedisEnv::VERSION
|
9
|
+
spec.authors = ["Ben Olive"]
|
10
|
+
spec.email = ["sionide21@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Store environment variables in redis}
|
13
|
+
spec.homepage = "https://github.com/sionide21/redis-env"
|
14
|
+
|
15
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
16
|
+
spec.bindir = "exe"
|
17
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
21
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
22
|
+
spec.add_development_dependency "rspec"
|
23
|
+
|
24
|
+
spec.add_dependency "thor"
|
25
|
+
spec.add_dependency "redis"
|
26
|
+
spec.add_dependency "dotenv"
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: redis_env
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ben Olive
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-02-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.10'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: thor
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: redis
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: dotenv
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description:
|
98
|
+
email:
|
99
|
+
- sionide21@gmail.com
|
100
|
+
executables:
|
101
|
+
- redis-env
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- .gitignore
|
106
|
+
- .rspec
|
107
|
+
- .travis.yml
|
108
|
+
- Gemfile
|
109
|
+
- README.md
|
110
|
+
- Rakefile
|
111
|
+
- bin/console
|
112
|
+
- bin/setup
|
113
|
+
- exe/redis-env
|
114
|
+
- lib/redis_env.rb
|
115
|
+
- lib/redis_env/version.rb
|
116
|
+
- redis_env.gemspec
|
117
|
+
homepage: https://github.com/sionide21/redis-env
|
118
|
+
licenses: []
|
119
|
+
metadata: {}
|
120
|
+
post_install_message:
|
121
|
+
rdoc_options: []
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - '>='
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
requirements: []
|
135
|
+
rubyforge_project:
|
136
|
+
rubygems_version: 2.0.14
|
137
|
+
signing_key:
|
138
|
+
specification_version: 4
|
139
|
+
summary: Store environment variables in redis
|
140
|
+
test_files: []
|