Sha256: a1c7e0a6169391c5f4f12ab180830bd90fa420c5e0243cfc8d27718e64c4a155

Contents?: true

Size: 973 Bytes

Versions: 86

Compression:

Stored size: 973 Bytes

Contents

#!/usr/bin/env ruby
# frozen_string_literal: true

require 'optparse'

opts = {}
OptionParser.new do |options|
  options.banner = "USAGE:
    #{File.basename($PROGRAM_NAME)} [opts]
  "
  options.on('-iIP', '--bind-ip=IP', '<Optional - HTTP Bind IP to Listen> (Defaults to Localhost)') do |i|
    opts[:bind_ip] = i
  end

  options.on('-pPORT', '--port=PORT', '<Optional - HTTP Port to Listen (Defaults to 3333)>') do |p|
    opts[:port] = p
  end
end.parse!

bind_ip = opts[:bind_ip] ||= '127.0.0.1'

port = opts[:port].to_i
port = 3333 if port.zero?

begin
  system(
    'thin',
    'start',
    '--adapter',
    'file',
    '--address',
    bind_ip,
    '--port',
    port.to_s,
    '--threaded',
    '--debug'
  )
rescue RuntimeError
  puts "WARNING: Service Already Listening on TCP #{port}..."
  port = Random.rand(1_025..65_535)
  puts "Listen on #{bind_ip}:#{port}..."
  retry
rescue SystemExit, Interrupt
  puts "\n#{File.basename($PROGRAM_NAME)} terminated."
end

Version data entries

86 entries across 86 versions & 1 rubygems

Version Path
pwn-0.5.253 bin/pwn_simple_http_server
pwn-0.5.252 bin/pwn_simple_http_server
pwn-0.5.251 bin/pwn_simple_http_server
pwn-0.5.250 bin/pwn_simple_http_server
pwn-0.5.249 bin/pwn_simple_http_server
pwn-0.5.248 bin/pwn_simple_http_server
pwn-0.5.247 bin/pwn_simple_http_server
pwn-0.5.246 bin/pwn_simple_http_server
pwn-0.5.245 bin/pwn_simple_http_server
pwn-0.5.244 bin/pwn_simple_http_server
pwn-0.5.243 bin/pwn_simple_http_server
pwn-0.5.242 bin/pwn_simple_http_server
pwn-0.5.241 bin/pwn_simple_http_server
pwn-0.5.240 bin/pwn_simple_http_server
pwn-0.5.239 bin/pwn_simple_http_server
pwn-0.5.238 bin/pwn_simple_http_server
pwn-0.5.237 bin/pwn_simple_http_server
pwn-0.5.236 bin/pwn_simple_http_server
pwn-0.5.235 bin/pwn_simple_http_server
pwn-0.5.234 bin/pwn_simple_http_server