Sha256: e1d506b79ed7bd4de1981be846661fbc94230283acdc1c76df53cd702bab2879

Contents?: true

Size: 715 Bytes

Versions: 1

Compression:

Stored size: 715 Bytes

Contents

#!/usr/bin/env ruby
require 'pty'
require 'readline'
STDOUT.sync = true
bin = "#{Gem.bin_path('voltos', 'voltos')}-cli"
status = PTY.spawn(bin, *ARGV) do |stdout, stdin, pid|
  stdout.sync = true
  Thread.new do
    loop do
      STDOUT.print stdout.getc
    end
  end
  Thread.new do
    loop do
      input = Readline.readline("", true)
      if input.nil?
        stdout.flush
        stdout.close
        stdin.close
      end
      stdin.puts input.strip
    end
  end
  begin
    Process::waitpid(pid) rescue nil
    while out = stdout.getc do
      STDOUT.print out
    end
  rescue SystemExit, Interrupt
    Process.kill('INT', pid)
    retry
  rescue EOFError
    puts "Ctrl-D"
  end
end
exit(status.to_i)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
voltos-0.3.0.rc10 exe/voltos