From c7de9deff125cec6e23f441b2b5c7c1d7d7c23f8 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Sat, 14 Apr 2012 23:40:55 -0400 Subject: [PATCH] set root dir on command line. --- gopher-server.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gopher-server.rb b/gopher-server.rb index cd3aedc..e0652cc 100644 --- a/gopher-server.rb +++ b/gopher-server.rb @@ -1,5 +1,10 @@ #!/usr/bin/env ruby -w +# +# gopher-server [-p port] [root directory] +# +# + require 'socket' require 'optparse' @@ -125,7 +130,7 @@ port = 7070 OptionParser.new { |opts| - opts.banner = "Usage: gopher-server [-p port]" + opts.banner = "Usage: gopher-server [-p port] [root-directory]" opts.on('-p P', '--port P', Integer, 'Port') do |x| port = x @@ -141,7 +146,10 @@ OptionParser.new { |opts| }.parse! +Dir.chdir(ARGV.pop()) if ARGV.length == 1 + server = TCPServer.new("0.0.0.0", port) +puts("Listening on port #{port}") loop do Thread.start(server.accept) do |client| begin @@ -152,7 +160,7 @@ loop do Thread.current[:hostname] = hostname Thread.current[:port] = port - puts("accept from #{addr.join(' ')}") + puts("accept from #{peer}") do_request(client) client.flush()