daemonite 0.5.9 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -0
  3. data/daemonite.gemspec +1 -1
  4. data/lib/daemonite.rb +21 -3
  5. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc0e44a0c6de00925ca5424245b89a85cd8d63c79c93d84892ae39d69b326373
4
- data.tar.gz: af45d64c6a065187ef9dc55e3cd025fb56f3b32727f355485253261071d553bf
3
+ metadata.gz: 567ade4dfc4fe9ee3f3197da49396f24543ea63a36081b2eecd18df005d710c4
4
+ data.tar.gz: '082c6e0d745c63153107b4010165fdd233f73aadb39a4a3b5fd467f0f1aea109'
5
5
  SHA512:
6
- metadata.gz: 62ec081eac7a40da7a5870e657e5b8f9257e145339d1b59fbf287c3e0d7c44de0bb7e86e4324fffeac858ac498824c6a974f37bb88b1a43fba92fd422c0201d7
7
- data.tar.gz: 11696919c2c13ed8efdc6b297600224ba84a1f0e5a91def24936c3d495c195583e3f44e1ccc8237382cf9776d15005ad92891122d272ca81dcb9b8e154154e52
6
+ metadata.gz: 1260f526ba7d52c9bad716bbe624f609565b57b107857d67c4b08a220ccc3bc3caefd1590e3301082fea5bba92561940949e9a98f20e03197c42c372ffb1d679
7
+ data.tar.gz: ab1537ca34893bce3db176ec70189000ad23d8755912948857612e509ed2330c438f563e269de8f34555f62d39556bb3695b5d5baee8ff9337c529648b74b930
data/README.md CHANGED
@@ -50,6 +50,32 @@ Daemonite.new(opts)
50
50
  Also be aware that a json configuration file $PROGRAM_NAME.sub /\.rb$/, '.conf'
51
51
  is automatically read, if it exists.
52
52
 
53
+ ## Usage - Sinatra
54
+
55
+ Give PID file + daemon start, stop, restart, info functionality to sinatra. Stack overflow overflows with questions about it :-)
56
+
57
+ ```ruby
58
+ require 'sinatra/base'
59
+ require 'daemonite'
60
+
61
+ Daemonite.new do |opts|
62
+ on startup do
63
+ opts[:sin] = Sinatra.new do
64
+ set :port, 9327
65
+ Encoding.default_external = "UTF-8"
66
+
67
+ get '/' do
68
+ 'Hello world!'
69
+ end
70
+ end
71
+ end
72
+
73
+ run do
74
+ opts[:sin].run!
75
+ end
76
+ end.go!
77
+ ```
78
+
53
79
  ## Usage - Alternative
54
80
 
55
81
  ```ruby
data/daemonite.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "daemonite"
3
- s.version = "0.5.9"
3
+ s.version = "0.7.0"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0"
6
6
  s.summary = "Daemonite - Process.daemon and argparse wrapper for loopies."
data/lib/daemonite.rb CHANGED
@@ -34,12 +34,13 @@ module Daemonism
34
34
  :cmdl_info => nil,
35
35
  :cmdl_parsing => true,
36
36
  :cmdl_operation => 'start',
37
- :kill_amount => 1000
37
+ :kill_amount => 100
38
38
  }
39
39
 
40
40
  def daemonism(opts={},&block)
41
41
  @at_exit = nil
42
- @at_start = nil
42
+ @at_startup = nil
43
+ @at_setup = nil
43
44
 
44
45
  if File.exists?(opts[:basepath] + '/' + opts[:conffile])
45
46
  opts.merge!(Psych::load_file(opts[:basepath] + '/' + opts[:conffile]))
@@ -50,6 +51,7 @@ module Daemonism
50
51
  opts[:block] = nil
51
52
  instance_exec(opts,&block) if block_given?
52
53
 
54
+
53
55
  ########################################################################################################################
54
56
  # parse arguments
55
57
  ########################################################################################################################
@@ -84,6 +86,11 @@ module Daemonism
84
86
  ########################################################################################################################
85
87
  opts[:runtime_proc].call(opts) unless opts[:runtime_proc].nil?
86
88
 
89
+ ########################################################################################################################
90
+ # call this if you want to change important things such as pidfile after parsing (but before any formal start)
91
+ ########################################################################################################################
92
+ @at_setup.call(opts) if @at_setup
93
+
87
94
  ########################################################################################################################
88
95
  # status and info
89
96
  ########################################################################################################################
@@ -135,7 +142,11 @@ module Daemonism
135
142
  Process.kill "SIGKILL", pid
136
143
  File.unlink(opts[:basepath] + '/' + opts[:pidfile])
137
144
  else
138
- Process.kill "SIGTERM", pid
145
+ if opts[:cmdl_operation] == 'stop'
146
+ Process.kill "SIGTERM", pid
147
+ else
148
+ Process.kill "SIGHUP", pid
149
+ end
139
150
  end
140
151
  count += 1
141
152
  sleep 0.3
@@ -172,22 +183,29 @@ module Daemonism
172
183
  @at_exit = blk
173
184
  when :startup
174
185
  @at_startup = blk
186
+ when :setup
187
+ @at_setup = blk
175
188
  end
176
189
  end
177
190
  def exit; :exit; end
178
191
  def startup; :startup; end
192
+ def setup; :setup; end
179
193
  def on_exit(&blk)
180
194
  on :exit, &blk
181
195
  end
182
196
  def on_startup(&blk)
183
197
  on :startup, &blk
184
198
  end
199
+ def on_setup(&blk)
200
+ on :setup, &blk
201
+ end
185
202
  def use(blk)
186
203
  instance_eval(&blk)
187
204
  end
188
205
  alias_method :at, :on
189
206
  alias_method :at_exit, :on_exit
190
207
  alias_method :at_startup, :on_startup
208
+ alias_method :at_setup, :on_setup
191
209
  end
192
210
 
193
211
  class Daemonite
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daemonite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.9
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-02 00:00:00.000000000 Z
11
+ date: 2023-03-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Daemonite - Process.daemon and argparse wrapper for loopies.
14
14
  email: juergen.mangler@gmail.com
@@ -29,7 +29,7 @@ homepage: https://github.com/etm/daemonite.rb
29
29
  licenses:
30
30
  - LGPL-3.0
31
31
  metadata: {}
32
- post_install_message:
32
+ post_install_message:
33
33
  rdoc_options: []
34
34
  require_paths:
35
35
  - lib
@@ -44,8 +44,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
46
  requirements: []
47
- rubygems_version: 3.1.2
48
- signing_key:
47
+ rubygems_version: 3.3.26
48
+ signing_key:
49
49
  specification_version: 4
50
50
  summary: Daemonite - Process.daemon and argparse wrapper for loopies.
51
51
  test_files: []