Sha256: 0cdc61ef7965a1ce5dc51d890767549a6d3bbb104ee14d5dc20ee9dbf1caca43
Contents?: true
Size: 1.35 KB
Versions: 3
Compression:
Stored size: 1.35 KB
Contents
#!/usr/bin/env ruby Dir.chdir(File.join(File.dirname(__FILE__), '..')) faf_lib_path = File.expand_path(File.dirname(__FILE__) + "/../lib") $:.unshift(faf_lib_path) unless $:.include?(faf_lib_path) require 'rubygems' unless defined?(Gem) require 'ostruct' require 'optparse' require 'socket' require 'fire_and_forget' options = OpenStruct.new options.bind_address = "127.0.0.1" options.port = FAF::DEFAULT_PORT OptionParser.new do |opts| opts.on("-a", "--bind-address ADDRESS", "Bind Address") { |v| options.bind_address = v } opts.on("-p", "--port PORT", Integer, "Port") { |p| options.port = p } end.parse! server = nil begin server = TCPServer.new(options.bind_address, options.port) rescue Errno::EADDRINUSE puts "FAF unable to bind to #{options.bind_address}:#{options.port}" exit(1) end run = true server_thread = Thread.new do while run and (session = server.accept) request = response = "" while l = session.gets request << l end session.close_read begin response = FAF::Server.parse(request) rescue => e response = "ERROR #{e}" end session.write(response) session.close end end ['INT', 'TERM'].each do |signal| trap(signal) do run = false; server_thread.exit end end puts "Fire&Forget process #{$$} listening on #{options.bind_address}:#{options.port}..." server_thread.join
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
fire_and_forget-0.1.2 | bin/fire_forget |
fire_and_forget-0.1.1 | bin/fire_forget |
fire_and_forget-0.1.0 | bin/fire_forget |