zeusd 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/bin/zeusd CHANGED
@@ -37,4 +37,4 @@ class ZeusdCLI < Thor
37
37
 
38
38
  end
39
39
 
40
- ZeusdCLI.start(ARGV)
40
+ ZeusdCLI.start(ARGV)
@@ -12,19 +12,23 @@ module Zeusd
12
12
  class Daemon
13
13
  include Hooks
14
14
 
15
- define_hooks :after_start!, :after_stop!, :before_stop!, :after_output
15
+ define_hooks :before_action, :after_action, :after_output
16
16
 
17
- after_start! { log_event :start, :process => process ? process.attributes : nil }
18
- before_stop! { log_event :stop, :process => process ? process.attributes : nil }
17
+ before_action do |action|
18
+ details = {}
19
+ details[:process] = process.attributes if process
20
+ log_event("Before: #{action}", details)
21
+ end
19
22
 
20
- after_stop! do
21
- (zeus_socket_file.delete rescue nil) if zeus_socket_file.exist?
23
+ after_action do |action|
24
+ details = {}
25
+ details[:process] = process.attributes if process
26
+ log_event("After: #{action}", details)
22
27
  end
23
28
 
24
29
  after_output do |output|
25
30
  interpreter.translate(output)
26
- # logger.info("Zeus"){output}
27
- puts(output) if verbose
31
+ puts output if verbose
28
32
  end
29
33
 
30
34
  attr_reader :cwd, :verbose, :log_file, :interpreter, :child_process
@@ -36,6 +40,8 @@ module Zeusd
36
40
  end
37
41
 
38
42
  def start!(options = {})
43
+ run_hook :before_action, __method__
44
+
39
45
  start_child_process!
40
46
 
41
47
  @process = Zeusd::Process.find(child_process.pid)
@@ -44,23 +50,32 @@ module Zeusd
44
50
  sleep(0.1) until loaded?
45
51
  end
46
52
 
47
- run_hook :after_start!
53
+ run_hook :after_action, __method__
48
54
 
49
55
  self
50
56
  end
51
57
 
52
58
  def restart!(options = {})
59
+ run_hook :before_action, __method__
60
+
53
61
  stop!.start!(options)
62
+
63
+ run_hook :after_action, __method__
64
+
65
+ self
54
66
  end
55
67
 
56
68
  def stop!
57
- run_hook :before_stop!
69
+ run_hook :before_action, __method__
58
70
 
59
71
  return self unless process
60
72
 
61
73
  # Kill process tree and wait for exits
62
74
  process.kill!(:recursive => true, :wait => true)
63
75
 
76
+ # Clean up socket file if stil exists
77
+ (zeus_socket_file.delete rescue nil) if zeus_socket_file.exist?
78
+
64
79
  # Check for remaining processes
65
80
  if[process, process.descendants].flatten.select(&:alive?).any?
66
81
  raise DaemonException, "Unable to KILL processes: " + alive_processes.join(', ')
@@ -68,7 +83,7 @@ module Zeusd
68
83
 
69
84
  @process = nil
70
85
 
71
- run_hook :after_stop!
86
+ run_hook :after_action, __method__
72
87
 
73
88
  self
74
89
  end
@@ -81,38 +96,33 @@ module Zeusd
81
96
  interpreter.complete?
82
97
  end
83
98
 
84
- def log_event(type, details = nil)
85
- logger.info("EVENT") do
86
- ">>> #{type.to_s.upcase}" + (details ? (" >>> " + JSON.pretty_generate(details)) : "")
87
- end
88
- end
89
-
90
- def logger
91
- @logger ||= Logger.new(log_file.to_path).tap do |x|
92
- x.formatter = proc do |severity, datetime, type, msg|
93
- prefix = "[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}][#{type}]"
94
- msg = msg.chomp.gsub("\n", "\n".ljust(prefix.length) + "\e[36m|\e[0m ")
95
- "\e[36m#{prefix}\e[0m" + " #{msg}\n"
96
- end
97
- end
98
- end
99
-
100
99
  def zeus_socket_file
101
100
  cwd.join('.zeus.sock')
102
101
  end
103
102
 
104
- def log_file
105
- cwd.join('log/zeusd.log')
106
- end
107
-
108
103
  def zeus_log_file
109
- cwd.join('.zeus.log').tap do |path|
104
+ cwd.join('log', 'zeus.log').tap do |path|
110
105
  FileUtils.touch(path.to_path)
111
106
  end
112
107
  end
113
108
 
114
109
  protected
115
110
 
111
+ def log_event(type, details = nil)
112
+ logger.info do
113
+ "\e[35m[Event] (#{type})\e[0m" + (!details.empty? ? " " + JSON.pretty_generate(details) : "")
114
+ end
115
+ end
116
+
117
+ def logger
118
+ @logger ||= Logger.new(cwd.join('log', 'zeusd.log').to_path).tap do |x|
119
+ x.formatter = proc do |severity, datetime, progname, msg|
120
+ prefix = "[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}]"
121
+ "\e[36m#{prefix}\e[0m" + " #{msg}\n"
122
+ end
123
+ end
124
+ end
125
+
116
126
  def start_child_process!
117
127
  # Truncate and cast to File
118
128
  zeus_log_file.open("w") {}
@@ -1,3 +1,3 @@
1
1
  module Zeusd
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zeusd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-27 00:00:00.000000000 Z
12
+ date: 2014-02-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -231,7 +231,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
231
231
  version: '0'
232
232
  segments:
233
233
  - 0
234
- hash: 4001944416869534268
234
+ hash: -4127736754607950828
235
235
  required_rubygems_version: !ruby/object:Gem::Requirement
236
236
  none: false
237
237
  requirements:
@@ -240,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
240
240
  version: '0'
241
241
  segments:
242
242
  - 0
243
- hash: 4001944416869534268
243
+ hash: -4127736754607950828
244
244
  requirements: []
245
245
  rubyforge_project:
246
246
  rubygems_version: 1.8.25