diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2006-06-23 22:32:10 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2006-06-23 22:32:10 +0000 |
commit | 8b89bd779a1ddc78da63de295574b8519c3e94c8 (patch) | |
tree | ed158214af6103059a3a5b8ff323edf36cc95c53 /railties/lib/commands/servers | |
parent | b533431ce5ec76ac531a4b303aea3afd35a4dde9 (diff) | |
download | rails-8b89bd779a1ddc78da63de295574b8519c3e94c8.tar.gz rails-8b89bd779a1ddc78da63de295574b8519c3e94c8.tar.bz2 rails-8b89bd779a1ddc78da63de295574b8519c3e94c8.zip |
Mongrel support for script/server. Closes #5475.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4486 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/lib/commands/servers')
-rw-r--r-- | railties/lib/commands/servers/mongrel.rb | 46 |
1 files changed, 46 insertions, 0 deletions
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 |