Class: Bridgetown::Commands::Build

Inherits:
Bridgetown::Command show all
Includes:
ConfigurationOverridable
Defined in:
bridgetown-core/lib/bridgetown-core/commands/build.rb

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

rubocop:disable Metrics/AbcSize, Metrics/MethodLength



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'bridgetown-core/lib/bridgetown-core/commands/build.rb', line 18

def call # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
  Bridgetown.logger.adjust_verbosity(**options)
  config_options = configuration_with_overrides(
    options, Bridgetown::Current.preloaded_configuration
  )
  config_options.run_initializers! context: :static

  if config_options["plugins_dir"].is_a?(String)
    plugins_dir = File.expand_path(config_options["plugins_dir"])
    Bridgetown.logger.info "Custom Plugins:", plugins_dir if Dir.exist?(plugins_dir)
  end

  site = Bridgetown::Site.new(config_options)
  site.build

  if options[:watch]
    container = Bridgetown::Container.new

    container.add_routine(Routines::SiteWatcher.new(site: site))
    container.add_routine(Routines::FrontendWatcher.new(site: site))

    container.run
    container.wait
  else
    Bridgetown.logger.info \
      "Auto-regeneration:", "disabled. Use --watch to enable."
  end
end