Try to fix preview server config

This commit is contained in:
Thomas Reynolds 2016-03-20 17:33:44 -07:00
parent aab7bac8a6
commit 8425692b86
2 changed files with 33 additions and 14 deletions

View file

@ -271,6 +271,8 @@ module Middleman
# Before config is parsed, before extensions get to it. # Before config is parsed, before extensions get to it.
execute_callbacks(:initialized) execute_callbacks(:initialized)
apply_cli_options
# Before config is parsed. Mostly used for extensions. # Before config is parsed. Mostly used for extensions.
execute_callbacks(:before_configuration) execute_callbacks(:before_configuration)
@ -283,14 +285,7 @@ module Middleman
# Run any `configure` blocks for the current mode. # Run any `configure` blocks for the current mode.
execute_callbacks([:configure, config[:mode]]) execute_callbacks([:configure, config[:mode]])
config[:cli_options].each do |k, v| apply_cli_options
setting = config.setting(k.to_sym)
next unless setting
v = setting.options[:import].call(v) if setting.options[:import]
config[k.to_sym] = v
end
# Post parsing, pre-extension callback # Post parsing, pre-extension callback
execute_callbacks(:after_configuration_eval) execute_callbacks(:after_configuration_eval)
@ -308,6 +303,17 @@ module Middleman
execute_callbacks(:ready) unless config[:exit_before_ready] execute_callbacks(:ready) unless config[:exit_before_ready]
end end
def apply_cli_options
config[:cli_options].each do |k, v|
setting = config.setting(k.to_sym)
next unless setting
v = setting.options[:import].call(v) if setting.options[:import]
config[k.to_sym] = v
end
end
# Eval config # Eval config
def evaluate_configuration! def evaluate_configuration!
# Check for and evaluate local configuration in `config.rb` # Check for and evaluate local configuration in `config.rb`

View file

@ -172,18 +172,23 @@ module Middleman
end end
# store configured port to make a check later on possible # store configured port to make a check later on possible
configured_port = app.config[:port] configured_port = possible_from_cli(:port, app.config)
# Use configuration values to set `bind_address` etc. in # Use configuration values to set `bind_address` etc. in
# `server_information` # `server_information`
server_information.use app.config server_information.use({
bind_address: possible_from_cli(:bind_address, app.config),
port: possible_from_cli(:port, app.config),
server_name: possible_from_cli(:server_name, app.config),
https: possible_from_cli(:https, app.config)
})
app.logger.warn format('== The Middleman uses a different port "%s" then the configured one "%s" because some other server is listening on that port.', server_information.port, configured_port) unless app.config[:port] == configured_port app.logger.warn format('== The Middleman uses a different port "%s" then the configured one "%s" because some other server is listening on that port.', server_information.port, configured_port) unless server_information.port == configured_port
@environment = app.config[:environment] @environment = possible_from_cli(:environment, app.config)
@ssl_certificate = app.config[:ssl_certificate] @ssl_certificate = possible_from_cli(:ssl_certificate, app.config)
@ssl_private_key = app.config[:ssl_private_key] @ssl_private_key = possible_from_cli(:ssl_private_key, app.config)
app.files.on_change :reload do app.files.on_change :reload do
$mm_reload = true $mm_reload = true
@ -199,6 +204,14 @@ module Middleman
app app
end end
def possible_from_cli(key, config)
if @cli_options[key] && @cli_options[key] != :undefined
@cli_options[key]
else
config[key]
end
end
# Trap some interupt signals and shut down smoothly # Trap some interupt signals and shut down smoothly
# @return [void] # @return [void]
def register_signal_handlers def register_signal_handlers