zeusd 0.2.0 → 0.2.1

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.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Zeusd [![Gem Version](https://badge.fury.io/rb/zeusd.png)](http://badge.fury.io/rb/zeusd) [![Build Status](https://travis-ci.org/veloper/zeusd.png?branch=master)](https://travis-ci.org/veloper/zeusd) [![Code Climate](https://codeclimate.com/github/veloper/zeusd.png)](https://codeclimate.com/github/veloper/zeusd)
1
+ # Zeusd [![Gem Version](https://badge.fury.io/rb/zeusd.png)](http://badge.fury.io/rb/zeusd) [![Dependency Status](https://gemnasium.com/veloper/zeusd.png)](https://gemnasium.com/veloper/zeusd) [![Build Status](https://travis-ci.org/veloper/zeusd.png?branch=master)](https://travis-ci.org/veloper/zeusd) [![Code Climate](https://codeclimate.com/github/veloper/zeusd.png)](https://codeclimate.com/github/veloper/zeusd)
2
2
 
3
3
  Zeusd aims to provide greater control and easier scripting of the [Zeus Gem](https://github.com/burke/zeus) via daemonization.
4
4
 
@@ -53,4 +53,4 @@ $ gem install zeusd
53
53
 
54
54
  ## License
55
55
 
56
- * Zeusd is released under the New BSD license. http://dan.doezema.com/licenses/new-bsd/
56
+ * Zeusd is released under the New BSD license. http://dan.doezema.com/licenses/new-bsd/
data/lib/zeusd/daemon.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'logger'
1
2
  require 'thread'
2
3
  require 'childprocess'
3
4
  require 'pathname'
@@ -7,15 +8,12 @@ module Zeusd
7
8
  class DaemonException < StandardError; end
8
9
 
9
10
  class Daemon
10
- attr_reader :cwd, :verbose, :log_file, :log_queue, :interpreter, :child_process
11
-
12
-
13
11
  include Hooks
14
- define_hooks :after_start!, :after_stop!, :after_output
15
12
 
16
- after_start! { log(:start) }
17
- after_stop! { log(:stop) }
18
- after_output {|x| log(x, :zeus) }
13
+ define_hooks :after_start!, :after_stop!, :before_stop!, :after_output
14
+
15
+ after_start! { logger.info("Zeusd") { "Start - pid(#{process.pid})" } }
16
+ before_stop! { logger.info("Zeusd") { "Stop - pid(#{process ? process.pid : 'nil'})" } }
19
17
 
20
18
  after_stop! do
21
19
  (socket_file.delete rescue nil) if socket_file.exist?
@@ -23,9 +21,12 @@ module Zeusd
23
21
 
24
22
  after_output do |output|
25
23
  interpreter.translate(output)
26
- puts(output) if verbose?
24
+ logger.info("Zeus"){output}
25
+ puts(output) if verbose
27
26
  end
28
27
 
28
+ attr_reader :cwd, :verbose, :log_file, :interpreter, :child_process
29
+
29
30
  def initialize(options = {})
30
31
  @cwd = Pathname.new(options[:cwd] || Dir.pwd).realpath
31
32
  @verbose = !!options[:verbose]
@@ -51,6 +52,8 @@ module Zeusd
51
52
  end
52
53
 
53
54
  def stop!
55
+ run_hook :before_stop!
56
+
54
57
  return self unless process
55
58
 
56
59
  # Kill process tree and wait for exits
@@ -84,24 +87,16 @@ module Zeusd
84
87
  cwd.join('.zeus.sock')
85
88
  end
86
89
 
87
- def verbose?
88
- !!verbose
89
- end
90
-
91
90
  protected
92
91
 
93
- def log(entry, type = :zeusd)
94
- log_queue << "<#{type.to_s} utc='#{Time.now.utc}'>#{entry}</#{type.to_s}>\n"
95
- end
96
-
97
- def log_queue
98
- @log_queue ||= Queue.new
99
- end
100
-
101
- def ensure_log_worker
102
- @log_worker ||= Thread.new do
103
- while value = log_queue.shift
104
- log_file.open("a+") {|f| f.write(value) }
92
+ def logger
93
+ @logger ||= Logger.new(log_file.to_path).tap do |x|
94
+ x.formatter = proc do |severity, datetime, progname, msg|
95
+ color = progname["Zeusd"] ? 36 : 35
96
+ ts = datetime.strftime('%Y-%m-%d %H:%M:%S')
97
+ prefix = "[#{ts}][#{progname.ljust(6)}]"
98
+ msg = msg.chomp.gsub("\n", "\n".ljust(prefix.length) + "\e[#{color}m|\e[0m ")
99
+ "\e[#{color}m#{prefix}\e[0m" + " #{msg}\n"
105
100
  end
106
101
  end
107
102
  end
@@ -117,8 +112,6 @@ module Zeusd
117
112
 
118
113
  @writer.close
119
114
 
120
- ensure_log_worker
121
-
122
115
  Thread.new do
123
116
  while (buffer = (@reader.readpartial(10000) rescue nil)) do
124
117
  run_hook :after_output, buffer
data/lib/zeusd/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Zeusd
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
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.0
4
+ version: 0.2.1
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-19 00:00:00.000000000 Z
12
+ date: 2014-02-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -215,7 +215,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
215
215
  version: '0'
216
216
  segments:
217
217
  - 0
218
- hash: 3492660387363496392
218
+ hash: -796152463092065801
219
219
  required_rubygems_version: !ruby/object:Gem::Requirement
220
220
  none: false
221
221
  requirements:
@@ -224,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
224
224
  version: '0'
225
225
  segments:
226
226
  - 0
227
- hash: 3492660387363496392
227
+ hash: -796152463092065801
228
228
  requirements: []
229
229
  rubyforge_project:
230
230
  rubygems_version: 1.8.25