io_daemonizer 3 → 4

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.
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