etcd-env 0.0.1 → 0.0.2

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/circle.yml +10 -3
  3. data/etcd-env.gemspec +2 -2
  4. data/exe/etcd-env +17 -13
  5. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f6e8e985054b8b3c0fb87b7eafbe064bd2c808d6
4
- data.tar.gz: 14cfc948d891bbfec9d43fb842d8d535076220e4
3
+ metadata.gz: f3626f43d7c856086a4000c27751eecef8d91395
4
+ data.tar.gz: 99b2879b50911dc6f773000baedabff4e8ab9a04
5
5
  SHA512:
6
- metadata.gz: 82acb643d95f74f7dac4c2f83baa1e20e120c5fe58b9f85fa8c1b74bb865dd8c0298f41d2ba5dad2b076dd4d50479a93feb59cc612269e4e218ff89ae60cb771
7
- data.tar.gz: c4e9bc2f6b0559d22bdf2d3d1c047e379fcf11c6e97a9328b09c9c6757cfc80ae6cd5873c4dfa791692c615fdcfe6c5bdbe52a0434113f5f1d857e6cfcf379fe
6
+ metadata.gz: dcdb7f01675b823be9ad9fbe7cf1095f81ab7b86c81fb8eb3fb3df6ee3eb902143c821ba6420663e3163b779de1c017aafb11026162e2be5354b58467bbed2db
7
+ data.tar.gz: c485c3cc59ccc5190ea416473b95b03b09217158cfde46cdad2f3a851ba07d5b4270c93a3426268fbbba1fcffebe2d02539f7eb50cbc07be3ec10e86c4d60177
data/circle.yml CHANGED
@@ -1,12 +1,19 @@
1
+ machine:
2
+ ruby:
3
+ version: 2.1.5
4
+
1
5
  dependencies:
2
6
  pre:
3
7
  - wget https://github.com/coreos/etcd/releases/download/v0.4.6/etcd-v0.4.6-linux-amd64.tar.gz
4
8
  - tar xzvf etcd-v0.4.6-linux-amd64.tar.gz
5
9
  - sudo cp etcd-v0.4.6-linux-amd64/etcd* /usr/local/bin/
6
10
  override:
7
- - 'rvm-exec 2.1.5 bundle install'
8
-
11
+ - gem update bundler
9
12
 
10
13
  test:
14
+ pre:
15
+ - etcd --data-dir /tmp/etcd --name test:
16
+ background: true
17
+ - sleep 2
11
18
  override:
12
- - etcd --data-dir /tmp/etcd --name test & sleep 2 && rvm-exec 2.1.5 bundle exec rspec
19
+ - bundle exec rspec
data/etcd-env.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  Gem::Specification.new do |spec|
3
3
  spec.name = 'etcd-env'
4
- spec.version = '0.0.1'
4
+ spec.version = '0.0.2'
5
5
  spec.authors = ['Charles Martinot', 'Omar Khan']
6
6
  spec.email = ['techadmin@playlab.com']
7
7
  spec.summary = 'Run a command with environment variables from etcd'
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.bindir = 'exe'
15
15
  spec.executables = spec.files.grep(/^exe\//) { |f| File.basename(f) }
16
16
 
17
- spec.add_development_dependency 'bundler', '~> 1.7'
17
+ spec.add_development_dependency 'bundler', '~> 1.9'
18
18
  spec.add_development_dependency 'rake', '~> 10.0'
19
19
  spec.add_development_dependency 'rspec'
20
20
  end
data/exe/etcd-env CHANGED
@@ -5,18 +5,17 @@ require 'json'
5
5
  require 'net/http'
6
6
 
7
7
  def usage
8
- puts "Usage: #{$PROGRAM_NAME} <etcd key> [ <etcd key> ... ] -- <command>"
8
+ puts "Usage: #{$PROGRAM_NAME} <etcd key> [ <etcd key> ... --] <command>"
9
9
  end
10
10
 
11
11
  def env_vars(keys)
12
- var = Array.new
13
- keys.each do |key|
12
+ result = keys.reduce({}) do |memo, key|
14
13
  response = fetch "http://#{etcd_host}:#{etcd_port}/v2/keys#{key}"
15
- var << (JSON.parse(response)['node']['nodes'] || [])
14
+ vars = (JSON.parse(response)['node']['nodes'] || [])
16
15
  .map { |var| [var['key'].split('/').last, var['value']] }
17
16
  .to_h
17
+ memo.merge(vars)
18
18
  end
19
- var
20
19
  end
21
20
 
22
21
  def etcd_host
@@ -43,12 +42,17 @@ def fetch(uri_str, limit = 10)
43
42
  end
44
43
  end
45
44
 
46
- if __FILE__ == $PROGRAM_NAME
47
- key_str, *commands = ARGV.join(" ").split(" -- ")
48
- keys = key_str.split(" ")
49
- if commands.empty?
50
- usage
51
- exit 1
52
- end
53
- exec env_vars(keys).reduce({}, :merge), *commands
45
+ sep = ARGV.index '--'
46
+ if sep
47
+ keys = ARGV[0...sep]
48
+ commands = ARGV[(sep + 1)..-1]
49
+ else
50
+ keys = ARGV.take(1)
51
+ commands = ARGV.drop(1)
52
+ end
53
+ if commands.empty?
54
+ usage
55
+ exit 1
54
56
  end
57
+ exec env_vars(keys), *commands
58
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: etcd-env
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Martinot
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2015-03-31 00:00:00.000000000 Z
12
+ date: 2015-04-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.7'
20
+ version: '1.9'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.7'
27
+ version: '1.9'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement