Sha256: 1e64e6095d6341103e8f3ab8030be68002ff798f633d3ed8478fb683eee0374f

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

#!/usr/bin/env ruby

gem 'trollop', '~> 1.16.2'
require "trollop"

require "text_tunnel/version"

config = Trollop.options do
  version "text_tunnel #{TextTunnel::VERSION}"
  banner <<-EOS
Usage:
       text_tunnel [options] <filename>
where [options] are:
  EOS

  opt :port, "Port", :type => :int, :default => 1777
end

Trollop.die "text_tunnel requires exactly one filename argument" unless ARGV.size == 1
file_path = ARGV[0]

require "text_tunnel/client"
begin
  client = Client.new(config[:port], file_path)
  puts "Editing #{file_path} via text_tunnel, CRTL+C to stop"

  loop do
    if client.poll
      puts "Wrote #{file_path} at #{Time.now}"
    end

    sleep 1
  end
rescue Errno::ECONNREFUSED => e
  puts "ERROR: Unable to connect to text_tunneld web server."
rescue Errno::EISDIR
  puts "ERROR: #{file_path} is a directory."
rescue Errno::EACCES
  puts "ERROR: Access denied - #{file_path}"
rescue RestClient::Exception, UnexpectedResponseError => e
  puts "ERROR: Connected to a web server, but received an unexpected response."
  puts "HTTP Status Code: #{e.http_code}"
  puts "HTTP Body:"
  puts e.http_body
rescue Interrupt
  puts "Exiting..."
ensure
  client.cleanup if client
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
text_tunnel-0.1.1 bin/text_tunnel
text_tunnel-0.1.0 bin/text_tunnel