From 8b89bd779a1ddc78da63de295574b8519c3e94c8 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Fri, 23 Jun 2006 22:32:10 +0000 Subject: Mongrel support for script/server. Closes #5475. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4486 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/lib/commands/servers/mongrel.rb | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 railties/lib/commands/servers/mongrel.rb (limited to 'railties/lib/commands/servers/mongrel.rb') diff --git a/railties/lib/commands/servers/mongrel.rb b/railties/lib/commands/servers/mongrel.rb new file mode 100644 index 0000000000..6d42316ba2 --- /dev/null +++ b/railties/lib/commands/servers/mongrel.rb @@ -0,0 +1,46 @@ +require 'rbconfig' + +unless RUBY_PLATFORM !~ /mswin/ && !silence_stderr { `mongrel_rails` }.blank? + puts "PROBLEM: Mongrel is not available on your system (or not in your path)" + exit 1 +end + +require 'optparse' + +detach = false +ip = nil +port = nil + +ARGV.options do |opt| + opt.on("-p", "--port=port", Integer, + "Runs Rails on the specified port.", + "Default: 3000") { |p| port = p } + opt.on("-b", "--binding=ip", String, + "Binds Rails to the specified ip.", + "Default: 0.0.0.0") { |i| ip = i } + opt.on('-h', '--help', 'Show this message.') { puts opt; exit 0 } + opt.on('-d', '-d', 'Call with -d to detach') { detach = true } + opt.parse! +end + +default_port, default_ip = 3000, '0.0.0.0' +puts "=> Rails application started on http://#{ip || default_ip}:#{port || default_port}" + +if !detach + puts "=> Call with -d to detach" + puts "=> Ctrl-C to shutdown server" + detach = false +end + +trap(:INT) { exit } + +tail_thread = nil + +begin + `mongrel_rails start #{detach ? "-d " : ""} -p #{port || default_port} -a #{ip || default_ip}` +ensure + unless detach + tail_thread.kill if tail_thread + puts 'Exiting' + end +end -- cgit v1.2.3