def perform
Signal.trap("INT") do
puts ""
exit 0
end
check_for_sass_files!(new_compiler_instance)
recompile
begin
require 'fssm'
rescue LoadError
$: << File.join(Compass.lib_directory, 'vendor', 'fssm')
retry
end
if options[:poll]
require "fssm/backends/polling"
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|
path.glob '**/*.s[ac]ss'
path.update &method(:recompile)
path.delete {|base, relative| remove_obsolete_css(base,relative); recompile(base, relative)}
path.create &method(:recompile)
end
end
end
end