class Middleman::Cli::Build

The CLI Build class

def build

Returns:
  • (void) -
def build
  if !ENV['MM_ROOT']
    raise Thor::Error, 'Error: Could not find a Middleman project config, perhaps you are in the wrong folder?'
  end
  require 'middleman-core'
  require 'middleman-core/logger'
  # Use Rack::Test for inspecting a running server for output
  require 'rack'
  require 'rack/test'
  require 'find'
  @debugging = Middleman::Cli::Base.respond_to?(:debugging) && Middleman::Cli::Base.debugging
  self.had_errors = false
  self.class.shared_instance(options['verbose'], options['instrument'])
  opts = {}
  opts[:glob]  = options['glob'] if options.has_key?('glob')
  opts[:clean] = options['clean']
  self.class.shared_instance.run_hook :before_build, self
  action BuildAction.new(self, opts)
  self.class.shared_instance.run_hook :after_build, self
  if self.had_errors && !self.debugging
    msg = 'There were errors during this build'
    unless options['verbose']
      msg << ', re-run with `middleman build --verbose` to see the full exception.'
    end
    self.shell.say msg, :red
  end
  exit(1) if self.had_errors
end

def exit_on_failure?

def exit_on_failure?
  true
end

def shared_instance(verbose=false, instrument=false)

Returns:
  • (Middleman::Application) -
def shared_instance(verbose=false, instrument=false)
  @_shared_instance ||= ::Middleman::Application.server.inst do
    config[:environment] = :build
    ::Middleman::Logger.singleton(verbose ? 0 : 1, instrument)
  end
end