Sha256: 13f5178cf74563dfa2ef05f75f9291d75cb308f2c55e75eeecaa0679a6b497fd

Contents?: true

Size: 1.69 KB

Versions: 3

Compression:

Stored size: 1.69 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 })
app = Middleman::Server.new

require 'rubygems'

unless defined?(JRUBY_VERSION)
  require 'thin'
  handler = Rack::Handler::Thin
else
  require 'kirk'
  require 'rack/handler/kirk'
  handler = Rack::Handler::Kirk
end

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
middleman-1.1.0.beta.7 bin/mm-server
middleman-1.1.0.beta.6 bin/mm-server
middleman-1.1.0.beta.5 bin/mm-server