class LocalTunnel::CLI

Public Class Methods

new(port: 8000, verbose: false) click to toggle source
# File lib/local_tunnel/cli.rb, line 6
def initialize(port: 8000, verbose: false)
  @options           = {}
  @options[:port]    = port
  @options[:verbose] = verbose
end
program_name() click to toggle source
# File lib/local_tunnel/cli.rb, line 46
def program_name
  File.basename($PROGRAM_NAME)
end
start(argv) click to toggle source
# File lib/local_tunnel/cli.rb, line 21
def start(argv)
  options = {}

  while argv.size > 0 && argv[0].start_with?('-') && argv[0] != '--'
    case argv[0]
    when '-v'
      options[:verbose] = true
      argv.shift
    else
      $stderr.write("#{program_name}: illegal option -- #{argv[0]}\n")
      $stderr.write("#{usage}\n")
      exit SysExits::USAGE
    end
  end

  begin
    options[:port] = Integer(argv[0]) if argv[0]
  rescue TypeError, ArgumentError
    $stderr.write("#{usage}\n")
    exit SysExits::USAGE
  end

  new(options).start
end
usage() click to toggle source
# File lib/local_tunnel/cli.rb, line 50
def usage
  "usage: #{program_name} [-v] [port]"
end

Public Instance Methods

option() click to toggle source
# File lib/local_tunnel/cli.rb, line 12
def option
  @options
end
start() click to toggle source
# File lib/local_tunnel/cli.rb, line 16
def start
  LocalTunnel::Tunnel.new(debug: @options[:verbose]).start(option[:port]).wait
end