mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 11:15:05 +08:00
0188d53f3a
In Discourse, `rails s` ultimately launches the `bin/unicorn` script. However, the overhead of `rails` launching `bin/rails`, and then in turn `bin/unicorn` can be non-trivial. Therefore it is much better to run `bin/unicorn` directly. This commit prints a warning message to STDERR when `rails s` is used. Functionality is unchanged.
30 lines
828 B
Ruby
Executable File
30 lines
828 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
# frozen_string_literal: true
|
|
|
|
if !ENV["RAILS_ENV"] && (ARGV[0] == "s" || ARGV[0] == "server")
|
|
ENV["UNICORN_PORT"] ||= "3000"
|
|
|
|
if ARGV[1] == "-p" && (port = ARGV[2].to_i) > 0
|
|
ENV["UNICORN_PORT"] = port.to_s
|
|
end
|
|
|
|
ENV["RAILS_LOGS_STDOUT"] ||= "1"
|
|
|
|
STDERR.puts <<~MESSAGE
|
|
--------
|
|
WARNING: Discourse uses `bin/unicorn` to start the web server.
|
|
For backwards compatibility, `rails s` will do this automatically.
|
|
For improved performance you should run `bin/unicorn` directly.
|
|
|
|
Running:
|
|
UNICORN_PORT=#{ENV["UNICORN_PORT"]} RAILS_LOGS_STDOUT=#{ENV["RAILS_LOGS_STDOUT"]} bin/unicorn
|
|
--------
|
|
MESSAGE
|
|
|
|
exec File.expand_path("unicorn", __dir__)
|
|
end
|
|
|
|
APP_PATH = File.expand_path('../config/application', __dir__)
|
|
require_relative '../config/boot'
|
|
require 'rails/commands'
|