hotswap 0.1.2 → 0.1.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 31ba7d63578622f3d225e863e638be171c949af98f6497019a3ce01c7371c71d
4
- data.tar.gz: 772a73f952822313044f1a28d1b5013458eafa0685772f97bdefe41372ed933b
3
+ metadata.gz: 62ebad7db344b7fe9207d272654825ec184edcc6a975beca1b69da0fd28d6464
4
+ data.tar.gz: ae90b89e45240eeb3ff82e367b397ca72583a479e4f6e8e44266380f72e10e06
5
5
  SHA512:
6
- metadata.gz: f7c028345800763facf9a6a76c17d34f5b3e8c6aa930778f76f28e731248024a67c9f0b6fba6d548aa6562459c8a2c00d76aa4f4b2d3815fdf87c81e9518e2d1
7
- data.tar.gz: e4c172d547d26c443030c720e537f95bfad0232f7a28f72458e8fb367f7b4f1c54d7a840f6c825c1bdf1892690e4e3e1c4e72e3c438b57eafa8ff9513793539f
6
+ metadata.gz: 956acefbe39bdaec50029bdddadec4c72deb31c849c09428949990519dfece496db4d6e939086ff5b0e774d7056a59f858e763b63a60b062068ee17571351a18
7
+ data.tar.gz: 577e3fc013fd8ff08308512ef9a8f999722f4d08f465eb16e99dd088fa569a427f9332800da684e3a5adeaefad992dd9c0840da448feca6baf11bcd488153361
data/exe/hotswap CHANGED
@@ -23,10 +23,15 @@ sock = UNIXSocket.new(socket_path)
23
23
  args = ARGV.map { |a| Shellwords.escape(a) }.join(" ")
24
24
  sock.write(args + "\n")
25
25
 
26
- # Pipe stdin to socket (in background thread)
27
- writer = Thread.new do
28
- IO.copy_stream($stdin, sock) rescue nil
29
- sock.close_write rescue nil
26
+ # Pipe stdin to socket (only if data is being piped in)
27
+ writer = nil
28
+ if !$stdin.tty?
29
+ writer = Thread.new do
30
+ IO.copy_stream($stdin, sock) rescue nil
31
+ sock.close_write rescue nil
32
+ end
33
+ else
34
+ sock.close_write
30
35
  end
31
36
 
32
37
  # Pipe stderr socket to local stderr (in background thread)
@@ -40,7 +45,7 @@ end
40
45
  # Pipe socket output to stdout
41
46
  IO.copy_stream(sock, $stdout) rescue nil
42
47
 
43
- writer.join
48
+ writer&.join
44
49
  stderr_reader&.join
45
50
  stderr_sock&.close rescue nil
46
51
  sock.close rescue nil
data/lib/hotswap/cli.rb CHANGED
@@ -6,7 +6,7 @@ require "sqlite3"
6
6
  module Hotswap
7
7
  class CLI < Thor
8
8
  def self.exit_on_failure?
9
- true
9
+ false
10
10
  end
11
11
 
12
12
  # Thread-safe IO: each connection gets its own IO via thread-local storage
@@ -16,6 +16,8 @@ module Hotswap
16
16
  Thread.current[:hotswap_stdout] = stdout
17
17
  Thread.current[:hotswap_stderr] = stderr
18
18
  start(args)
19
+ rescue SystemExit
20
+ # Thor calls exit on errors — catch it so we don't kill the server
19
21
  ensure
20
22
  Thread.current[:hotswap_stdin] = nil
21
23
  Thread.current[:hotswap_stdout] = nil
@@ -1,3 +1,3 @@
1
1
  module Hotswap
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hotswap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brad Gessler