Class: Bridgetown::Commands::Start

Inherits:
Bridgetown::Command show all
Includes:
ConfigurationOverridable, Freyia::Setup, Inclusive
Defined in:
bridgetown-core/lib/bridgetown-core/commands/start.rb

Defined Under Namespace

Modules: StartOptions

Instance Method Summary collapse

Methods included from ConfigurationOverridable

#configuration_with_overrides, include_options

Methods inherited from Bridgetown::Command

command_line, start, summary

Instance Method Details

#callObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'bridgetown-core/lib/bridgetown-core/commands/start.rb', line 38

def call
  options = HashWithDotAccess::Hash.new(self.options)
  config = configuration_with_overrides(options)
  load_env(config)

  config.run_initializers! context: :static
  site = Bridgetown::Site.new(config)
  site.build

  container = Bridgetown::Container.new
  container.add_routine(Routines::Server.new(site: site, port: options[:port],
                                             bind: options[:bind]))
  container.add_routine(Routines::SiteWatcher.new(site: site))
  container.add_routine(Routines::FrontendWatcher.new(site: site))

  begin
    container.run
    container.wait
  rescue Interrupt # rubocop:disable Lint/SuppressedException
  end
end