fenris 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/fenris/client.rb CHANGED
@@ -9,14 +9,19 @@ module Fenris
9
9
  def initialize(url)
10
10
  @url = url
11
11
  @url = URI.parse(url) unless url.is_a? URI
12
+ @quiet = false
13
+ end
14
+
15
+ def quiet= val
16
+ @quiet = val
12
17
  end
13
18
 
14
19
  def debug(message)
15
- puts "DEBUG: #{message}" if ENV['DEBUG']
20
+ puts "DEBUG: #{message}" if ENV['DEBUG'] and !@quiet
16
21
  end
17
22
 
18
23
  def log(message)
19
- puts "LOG: #{message}"
24
+ puts "LOG: #{message}" if not @quiet
20
25
  end
21
26
 
22
27
  def update(location)
@@ -61,6 +61,7 @@ module Fenris
61
61
  when "consume"
62
62
  Fenris::Base.consume(client, arg, name)
63
63
  when "exec"
64
+ client.quiet = true
64
65
  Fenris::Base.exec(client, *args)
65
66
  else
66
67
  puts command.inspect
data/lib/fenris/em.rb CHANGED
@@ -92,7 +92,7 @@ module Fenris
92
92
 
93
93
  EventMachine::run do
94
94
  client.save_keys
95
- EventMachine::PeriodicTimer.new(UPDATE_INTERVAL) { client.async_update }
95
+ EventMachine::PeriodicTimer.new(UPDATE_INTERVAL) { client.async_update } unless ENV['FENRIS_NO_TIMER']
96
96
  client.update external
97
97
  client.log "Serving port #{internal} on #{external}"
98
98
  listen client, external, internal
@@ -140,7 +140,7 @@ module Fenris
140
140
  abort "Can only pass a binding for a single provider" if override_binding && providers.length != 1
141
141
 
142
142
  EventMachine::run do
143
- EventMachine::PeriodicTimer.new(UPDATE_INTERVAL) { client.async_update }
143
+ EventMachine::PeriodicTimer.new(UPDATE_INTERVAL) { client.async_update } unless ENV['FENRIS_NO_TIMER']
144
144
  providers.each do |p|
145
145
  binding = override_binding || p["binding"]
146
146
  consumer_connect(client, binding, p["name"], p["location"])
@@ -152,12 +152,9 @@ module Fenris
152
152
  command = args.join(' ')
153
153
  EventMachine::run do
154
154
  consume(client)
155
- stdin = EventMachine.attach $stdin, Connection
156
- EventMachine::popen command, Connection do |ps|
157
- puts "execing command '#{command}'"
158
- ps.on_unbind { EventMachine::stop }
159
- stdin.on_unbind { EventMachine::stop }
160
- ps.proxy stdin; stdin.proxy ps
155
+ Thread.new do
156
+ system command
157
+ EM::stop
161
158
  end
162
159
  end
163
160
  end
@@ -1,3 +1,3 @@
1
1
  module Fenris
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fenris
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
8
+ - 4
9
9
  prerelease: false
10
10
  platform: ruby
11
11
  authors:
@@ -18,7 +18,7 @@ default_executable:
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: eventmachine
21
- requirement: &2158455980 !ruby/object:Gem::Requirement
21
+ requirement: &2166852580 !ruby/object:Gem::Requirement
22
22
  none: false
23
23
  requirements:
24
24
  - - ! '>='
@@ -30,10 +30,10 @@ dependencies:
30
30
  - 10
31
31
  type: :runtime
32
32
  prerelease: false
33
- version_requirements: *2158455980
33
+ version_requirements: *2166852580
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rest-client
36
- requirement: &2158453580 !ruby/object:Gem::Requirement
36
+ requirement: &2166831320 !ruby/object:Gem::Requirement
37
37
  none: false
38
38
  requirements:
39
39
  - - ! '>='
@@ -45,10 +45,10 @@ dependencies:
45
45
  - 7
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *2158453580
48
+ version_requirements: *2166831320
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: multi_json
51
- requirement: &2158450940 !ruby/object:Gem::Requirement
51
+ requirement: &2166829400 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ! '>='
@@ -60,7 +60,7 @@ dependencies:
60
60
  - 3
61
61
  type: :runtime
62
62
  prerelease: false
63
- version_requirements: *2158450940
63
+ version_requirements: *2166829400
64
64
  description: An authentication and service location service.
65
65
  email: orion.henry@gmail.com
66
66
  executables: