io_daemonizer 3 → 4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/io_daemonizer.rb +12 -13
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2fe90c198a168ddb60ba8664074e8ba81eb4e08fbfac69e86af72edea74e937f
4
- data.tar.gz: a386e4e1e76bbf154944d579d9220a35bfe7123d4725ef20bc22a2c3950a3fd1
3
+ metadata.gz: 32930632de1bc82574c36effe2665f42e3759f1260142d185dad0deed19f3ded
4
+ data.tar.gz: e86887bcd129dc4997febb337779420a5bcd644e17489b6e395a90c19fa91b69
5
5
  SHA512:
6
- metadata.gz: 2804cf8d50674070fe9bd9c6c8fb951bd6868acd7ee01a3862963b6e22f122ad09ea56113e892e93185a0d2caf58a30dcf24b570bcfbce86db62cc35f0a389d9
7
- data.tar.gz: 291594bc93f1a5b269c8a668815ff3bc9f1ebc18cb01c164d014307701e1d72224e89b950b5ef1a4b02b7cdc655a22770ad90fda506b140357be90403d289df7
6
+ metadata.gz: 0d45b854ab37c9dfc7bc06ae83ced4c1ef2b82b59fb94f0d5ba8bf5042e96732b5afc9514e982242faf9bcc72ff18bf2b1fc2d695ed83cf39f5986186dbdb1b2
7
+ data.tar.gz: 38ad97f6c54e41d057a4d6c0dacb41420b273d8549560fe75da9cf87e443acb513ca0c12044ef260f4d6e9a5dfbe11ed9609620589298b1aff23adcfcd660e1d
data/io_daemonizer.rb CHANGED
@@ -1,29 +1,27 @@
1
- # io_daemonizer v.3 https://github.com/joeyschoblaska/io_daemonizer
1
+ # io_daemonizer v.4 https://github.com/joeyschoblaska/io_daemonizer
2
2
 
3
3
  require "shellwords"
4
4
  require "socket"
5
5
  require "stringio"
6
6
 
7
7
  class IODaemonizer
8
- PORT = ENV["IO_DAEMONIZER_PORT"] || 5289
9
-
10
- def self.wrap(setup: -> {}, run: -> {})
8
+ def self.wrap(port:, setup:, run:)
11
9
  case ARGV[0]
12
10
  when "start"
13
11
  puts "starting server..."
14
- Daemon.run(setup: setup, run: run)
12
+ Daemon.run(port: port, setup: setup, run: run)
15
13
  when "stop"
16
14
  puts "stopping server..."
17
- send_request(ARGV)
15
+ send_request(port: port, args: ARGV)
18
16
  else
19
- send_request(ARGV)
17
+ send_request(port: port, args: ARGV)
20
18
  end
21
19
  rescue Errno::ECONNREFUSED
22
20
  puts "server not running or not responding"
23
21
  end
24
22
 
25
- def self.send_request(args)
26
- TCPSocket.open("127.0.0.1", PORT) do |socket|
23
+ def self.send_request(port:, args:)
24
+ TCPSocket.open("127.0.0.1", port) do |socket|
27
25
  socket.puts args.shelljoin
28
26
  socket.write $stdin.tty? ? "" : $stdin.read
29
27
  socket.close_write
@@ -41,13 +39,14 @@ class IODaemonizer
41
39
  end
42
40
 
43
41
  class Daemon
44
- def self.run(setup: -> {}, run: -> {})
45
- daemon = new(setup: setup, run: run)
42
+ def self.run(port:, setup:, run:)
43
+ daemon = new(port: port, setup: setup, run: run)
46
44
  daemon.setup
47
45
  daemon.start
48
46
  end
49
47
 
50
- def initialize(setup: -> {}, run: -> {})
48
+ def initialize(port:, setup:, run:)
49
+ @port = port
51
50
  @setup = setup
52
51
  @run = run
53
52
  @context = Object.new
@@ -58,7 +57,7 @@ class IODaemonizer
58
57
  end
59
58
 
60
59
  def start
61
- @server = TCPServer.open("127.0.0.1", PORT)
60
+ @server = TCPServer.open("127.0.0.1", @port)
62
61
  Process.daemon(true)
63
62
  read_socket(@server.accept) until @server.closed?
64
63
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io_daemonizer
3
3
  version: !ruby/object:Gem::Version
4
- version: '3'
4
+ version: '4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joey Schoblaska
@@ -37,7 +37,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
37
37
  - !ruby/object:Gem::Version
38
38
  version: '0'
39
39
  requirements: []
40
- rubygems_version: 3.3.3
40
+ rubygems_version: 3.2.3
41
41
  signing_key:
42
42
  specification_version: 4
43
43
  summary: IO Daemonizer