Skip to content

Commit

Permalink
[Command Line] Added a --poll option to the compass watch subcommand …
Browse files Browse the repository at this point in the history
…to force polling.
  • Loading branch information
chriseppstein committed Jan 10, 2010
1 parent 5078d0a commit 910fc46
Showing 1 changed file with 40 additions and 2 deletions.
42 changes: 40 additions & 2 deletions lib/compass/commands/watch_project.rb
Expand Up @@ -5,6 +5,25 @@

module Compass
module Commands
module WatchProjectOptionsParser
def set_options(opts)
super

opts.banner = %Q{
Usage: compass watch [path/to/project] [path/to/project/src/file.sass ...] [options]
Description:
watch the project for changes and recompile when they occur.
Options:
}.split("\n").map{|l| l.gsub(/^ */,'')}.join("\n")

opts.on("--poll", :NONE, "Check periodically if there's been changes.") do
self.options[:poll] = 1 # check every 1 second.
end

end
end
class WatchProject < UpdateProject

register :watch
Expand All @@ -19,15 +38,25 @@ def perform

recompile

puts ">>> Compass is watching for changes. Press Ctrl-C to Stop."

begin
require 'fssm'
rescue LoadError
$: << File.join(Compass.lib_directory, 'vendor')
retry
end

if options[:poll]
require "fssm/backends/polling"
# have to silence the ruby warning about chaning a constant.
stderr, $stderr = $stderr, StringIO.new
FSSM::Backends.const_set("Default", FSSM::Backends::Polling)
$stderr = stderr
end

action = FSSM::Backends::Default.to_s == "FSSM::Backends::Polling" ? "polling" : "watching"

puts ">>> Compass is #{action} for changes. Press Ctrl-C to Stop."

FSSM.monitor do |monitor|
Compass.configuration.sass_load_paths.each do |load_path|
monitor.path load_path do |path|
Expand Down Expand Up @@ -66,6 +95,15 @@ def recompile(base = nil, relative = nil)
end
end

class << self
def option_parser(arguments)
parser = Compass::Exec::CommandOptionParser.new(arguments)
parser.extend(Compass::Exec::GlobalOptionsParser)
parser.extend(Compass::Exec::ProjectOptionsParser)
parser.extend(CompileProjectOptionsParser)
parser.extend(WatchProjectOptionsParser)
end
end
end
end
end

0 comments on commit 910fc46

Please sign in to comment.