Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #5475: 2006-06-23-script_server_mongrel_server_support.diff

File 2006-06-23-script_server_mongrel_server_support.diff, 2.5 kB (added by jeremydurham@gmail.com, 4 years ago)
  • railties/lib/commands/server.rb

    old new  
    1010server = case ARGV.first 
    1111  when "lighttpd" 
    1212    ARGV.shift 
     13  when "mongrel" 
     14    ARGV.shift 
    1315  when "webrick" 
    1416    ARGV.shift 
    1517  else 
    1618    if RUBY_PLATFORM !~ /mswin/ && !silence_stderr { `lighttpd -version` }.blank? && defined?(FCGI) 
    1719      "lighttpd" 
     20    elsif !silence_stderr { `mongrel_rails -v` }.blank? 
     21      "mongrel" 
    1822    else 
    1923      "webrick" 
    2024    end 
    2125end 
    2226 
    23 if server == "webrick" 
    24   puts "=> Booting WEBrick..." 
    25 else 
    26   puts "=> Booting lighttpd (use 'script/server webrick' to force WEBrick)" 
     27case server 
     28  when "webrick" 
     29    puts "=> Booting WEBrick..." 
     30  when "lighttpd" 
     31    puts "=> Booting lighttpd (use 'script/server webrick' to force WEBrick)" 
     32  when "mongrel" 
     33    puts "=> Booting Mongrel (use 'script/server webrick' to force WEBrick)" 
    2734end 
    2835 
    2936['sessions', 'cache', 'sockets'].each { |dir_to_make| FileUtils.mkdir_p(File.join(RAILS_ROOT, 'tmp', dir_to_make)) } 
  • railties/lib/commands/servers/mongrel.rb

    old new  
     1require 'rbconfig' 
     2 
     3unless RUBY_PLATFORM !~ /mswin/ && !silence_stderr { `mongrel_rails` }.blank? 
     4  puts "PROBLEM: Mongrel is not available on your system (or not in your path)" 
     5  exit 1 
     6end 
     7 
     8require 'optparse' 
     9 
     10detach = false 
     11ip = nil 
     12port = nil 
     13 
     14ARGV.options do |opt| 
     15  opt.on("-p", "--port=port", Integer, 
     16          "Runs Rails on the specified port.", 
     17          "Default: 3000") { |p| port = p } 
     18  opt.on("-b", "--binding=ip", String, 
     19          "Binds Rails to the specified ip.", 
     20          "Default: 0.0.0.0") { |i| ip = i } 
     21  opt.on('-h', '--help', 'Show this message.') { puts opt; exit 0 } 
     22  opt.on('-d', '-d', 'Call with -d to detach') { detach = true } 
     23  opt.parse! 
     24end 
     25 
     26default_port, default_ip = 3000, '0.0.0.0' 
     27puts "=> Rails application started on http://#{ip || default_ip}:#{port || default_port}" 
     28 
     29if !detach 
     30  puts "=> Call with -d to detach" 
     31  puts "=> Ctrl-C to shutdown server" 
     32  detach = false 
     33end 
     34 
     35trap(:INT) { exit } 
     36 
     37tail_thread = nil 
     38 
     39begin 
     40  `mongrel_rails start #{detach ? "-d " : ""} -p #{port || default_port} -a #{ip || default_ip}` 
     41ensure 
     42  unless detach 
     43    tail_thread.kill if tail_thread 
     44    puts 'Exiting' 
     45  end 
     46end