Merge pull request #28943 from koshigoe/port-arg-has-precedence-over-env-var
CLI arg `--port` has precedence over env `PORT`
This commit is contained in:
commit
3fc489fff9
@ -95,10 +95,11 @@ def restart_command
|
||||
|
||||
module Command
|
||||
class ServerCommand < Base # :nodoc:
|
||||
DEFAULT_PORT = 3000
|
||||
DEFAULT_PID_PATH = "tmp/pids/server.pid".freeze
|
||||
|
||||
class_option :port, aliases: "-p", type: :numeric,
|
||||
desc: "Runs Rails on the specified port.", banner: :port, default: 3000
|
||||
desc: "Runs Rails on the specified port - defaults to 3000.", banner: :port
|
||||
class_option :binding, aliases: "-b", type: :string,
|
||||
desc: "Binds Rails to the specified IP - defaults to 'localhost' in development and '0.0.0.0' in other environments'.",
|
||||
banner: :IP
|
||||
@ -184,7 +185,7 @@ def user_supplied_options
|
||||
end
|
||||
|
||||
def port
|
||||
ENV.fetch("PORT", options[:port]).to_i
|
||||
options[:port] || ENV.fetch("PORT", DEFAULT_PORT).to_i
|
||||
end
|
||||
|
||||
def host
|
||||
|
@ -140,6 +140,18 @@ def test_host
|
||||
end
|
||||
|
||||
def test_argument_precedence_over_environment_variable
|
||||
switch_env "PORT", "1234" do
|
||||
args = ["-p", "5678"]
|
||||
options = parse_arguments(args)
|
||||
assert_equal 5678, options[:Port]
|
||||
end
|
||||
|
||||
switch_env "PORT", "1234" do
|
||||
args = ["-p", "3000"]
|
||||
options = parse_arguments(args)
|
||||
assert_equal 3000, options[:Port]
|
||||
end
|
||||
|
||||
switch_env "HOST", "1.2.3.4" do
|
||||
args = ["-b", "127.0.0.1"]
|
||||
options = parse_arguments(args)
|
||||
|
Loading…
Reference in New Issue
Block a user