# CLI Module module Middleman::Cli # Server thor task class Server < Thor check_unknown_options! namespace :server desc "server [options]", "Start the preview server" method_option :environment, :aliases => "-e", :default => ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development', :desc => "The environment Middleman will run under" method_option :host, :type => :string, :aliases => "-h", :default => "0.0.0.0", :desc => "Bind to HOST address" method_option :port, :aliases => "-p", :default => "4567", :desc => "The port Middleman will listen on" method_option :verbose, :type => :boolean, :default => false, :desc => 'Print debug messages' method_option :instrument, :type => :string, :default => false, :desc => 'Print instrument messages' method_option :disable_watcher, :type => :boolean, :default => false, :desc => 'Disable the file change and delete watcher process' method_option :profile, :type => :boolean, :default => false, :desc => 'Generate profiling report for server startup' method_option :reload_paths, :type => :string, :default => false, :desc => 'Additional paths to auto-reload when files change' method_option :force_polling, :type => :boolean, :default => false, :desc => 'Force file watcher into polling mode' method_option :latency, :type => :numeric, :aliases => "-l", :default => 0.25, :desc => 'Set file watcher latency, in seconds' # Start the server def server require "middleman-core" require "middleman-core/preview_server" if !ENV["MM_ROOT"] puts "== Could not find a Middleman project config.rb" puts "== Treating directory as a static site to be served" ENV["MM_ROOT"] = Dir.pwd ENV["MM_SOURCE"] = "" end params = { :port => options["port"], :host => options["host"], :environment => options["environment"], :debug => options["verbose"], :instrumenting => options["instrument"], :disable_watcher => options["disable_watcher"], :reload_paths => options["reload_paths"], :force_polling => options["force_polling"], :latency => options["latency"] } puts "== The Middleman is loading" ::Middleman::PreviewServer.start(params) end end def self.exit_on_failure? true end # Map "s" to "server" Base.map({ "s" => "server" }) end