Sha256: cc1c29c2736a6e0e7ff3c6d3da34dbf6059a9dbd000f83d8b2ced4f998f1a5d4

Contents?: true

Size: 1.55 KB

Versions: 14

Compression:

Stored size: 1.55 KB

Contents

#!/usr/bin/env ruby

# Non-blocking site rebuilding
trap("TSTP") do 
  fork do
    require "open3"
    first_run = true
    Open3.popen3(%Q{cd "#{Dir.pwd}" && #{File.join(File.dirname(__FILE__), "mm-build")} | grep FORCED}) do |stdin, stdout, stderr|
      puts "\n== Building the site..."
      stdout.readlines.each do |l|
        puts "== Updated:" if first_run
        puts " " + l.split("[FORCED]").last.chomp
        first_run = false
      end
      puts "== Build complete"
    end
  end
end

require 'optparse'

# Require Middleman
require File.join(File.dirname(__FILE__), '..', 'lib', 'middleman')

env = ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development'
options = { :Port => 4567, :AccessLog => [] }

OptionParser.new { |opts|
  opts.banner = "Usage: mm-server [rack options]"
  opts.separator ""
  opts.separator "Rack options:"
  opts.on("-p", "--port PORT", "use PORT (default: 4567)") { |port|
    options[:Port] = port
  }
  opts.on("-E", "--env ENVIRONMENT", "use ENVIRONMENT for defaults (default: development)") { |e|
    env = e
  }
  opts.on("--debug", "Debug mode") {
    ::Middleman::Server.set :logging, true
  }
  
  opts.parse! ARGV
}

ENV['RACK_ENV'] = env

class Middleman::Server
  set :root, Dir.pwd
end

require 'shotgun'
config = File.join(File.dirname(__FILE__), '..', 'lib', 'middleman', 'config.ru')
app = Shotgun.new(config, &lambda { |inner_app| Middleman::Server })

require 'rubygems'
require 'thin'
Thin::Logging.silent = true

Rack::Handler::Thin.run app, options do |inst|
  puts "== The Middleman is standing watch on port #{options[:Port]}"
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
middleman-1.1.0.beta.3 bin/mm-server
middleman-1.1.0.beta.2 bin/mm-server
middleman-1.1.0.beta.1 bin/mm-server
middleman-1.1.0.beta.0 bin/mm-server
middleman-1.1.0.alpha.2 bin/mm-server
middleman-1.0.3 bin/mm-server
middleman-1.1.0.alpha.1 bin/mm-server
middleman-1.0.2 bin/mm-server
middleman-1.0.1 bin/mm-server
middleman-1.0.0 bin/mm-server
middleman-1.0.0.pre bin/mm-server
middleman-0.99.3.pre bin/mm-server
middleman-0.99.2.pre bin/mm-server
middleman-0.99.1.pre bin/mm-server