#!/usr/bin/env ruby # frozen_string_literal: true require 'middleman-core/profiling' Middleman::Profiling.profiler = Middleman::Profiling::RubyProfProfiler.new if ARGV.include? '--profile' require 'middleman-core/load_paths' Middleman.setup_load_paths require 'dotenv' ::Dotenv.load require 'middleman-core' require 'middleman-core/logger' module Middleman::Cli class << self attr_accessor :config end def self.import_config(base) ::Middleman::Cli.config.all_settings.each do |setting| if setting.default.is_a?(String) || setting.default.is_a?(NilClass) base.class_option setting.key, type: :string, desc: setting.description elsif setting.default.is_a?(TrueClass) || setting.default.is_a?(FalseClass) base.class_option setting.key, type: :boolean, desc: setting.description end end end end require 'middleman-cli' # Change directory to the root Dir.chdir(ENV['MM_ROOT']) if ENV['MM_ROOT'] # Default command is server ARGV.unshift('server') if ARGV[0] != 'help' && (ARGV.empty? || ARGV.first.include?('-')) ::Middleman::Logger.singleton(3) ::Middleman::Cli.config = ::Middleman::Application.new do config[:environment] = (ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development').to_sym config[:mode] = :config config[:exit_before_ready] = true config[:watcher_disable] = true config[:disable_sitemap] = true end.config # Require the Middleman version require 'middleman-core/version' # Include the core CLI items require 'middleman-cli/init' require 'middleman-cli/extension' require 'middleman-cli/server' require 'middleman-cli/build' require 'middleman-cli/console' require 'middleman-cli/config' # Support NO_COLOR: https://no-color.org ENV['THOR_SHELL'] = 'Basic' if ENV['NO_COLOR'] # Start the CLI Middleman::Cli::Base.start(ARGV)