Class: Bridgetown::Commands::Start
Class Method Summary
collapse
Instance Method Summary
collapse
extended
summary
#configuration_with_overrides, included
Class Method Details
.banner ⇒ Object
[View source]
59
60
61
|
# File 'lib/bridgetown-core/commands/start.rb', line 59
def self.banner
"bridgetown start [options]"
end
|
Instance Method Details
#start ⇒ Object
[View source]
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
# File 'lib/bridgetown-core/commands/start.rb', line 64
def start
pid_tracker = packages[Bridgetown::Foundation::Packages::PidTracker]
Bridgetown.logger.writer.enable_prefix
Bridgetown::Commands::Build.print_startup_message
sleep 0.25
options = Thor::CoreExt::HashWithIndifferentAccess.new(self.options)
options[:start_command] = true
bt_options = configuration_with_overrides(options)
port = ENV.fetch("BRIDGETOWN_PORT", bt_options.port)
bt_bound_url = "http://#{bt_options.bind}:#{port}"
if Bridgetown.env.development? && !options["url"]
bt_options.url = bt_bound_url.sub("0.0.0.0", "localhost")
end
Bridgetown::Server.new({
Host: bt_options.bind,
Port: port,
config: rack_config_file,
}).tap do |server|
if server.serveable?
pid_tracker.create_pid_dir
bt_options.skip_live_reload = !server.using_puma?
build_args = ["-w"] + ARGV.reject { |arg| arg == "start" }
build_pid = Process.fork { Bridgetown::Commands::Build.start(build_args) }
pid_tracker.add_pid(build_pid, file: :bridgetown)
after_stop_callback = -> {
say "Stopping Bridgetown server..."
Bridgetown::Hooks.trigger :site, :server_shutdown
Process.kill "SIGINT", build_pid
pid_tracker.remove_pidfile :bridgetown
unless Bridgetown.env.production? || bt_options[:skip_frontend]
Bridgetown::Utils::Aux.kill_processes
end
}
Bridgetown.logger.info ""
Bridgetown.logger.info "Booting #{server.name} at:", bt_bound_url.to_s.magenta
Bridgetown.logger.info ""
server.start(after_stop_callback)
else
say "Unable to find a Rack server."
end
end
end
|