Update listen code

This commit is contained in:
Eliott Appleford 2014-07-02 18:26:18 +01:00
parent 7b85a44afb
commit d8f84fa97b

View file

@ -111,18 +111,15 @@ module Middleman
end end
def start_file_watcher def start_file_watcher
return if @options[:disable_watcher] return if @listener or @options[:disable_watcher]
first_run = !@listener # Watcher Library
require 'listen'
if first_run options = {force_polling: @options[:force_polling]}
# Watcher Library options[:latency] = @options[:latency] if @options[:latency]
require 'listen'
@listener = Listen.to(Dir.pwd, relative_paths: true, force_polling: @options[:force_polling])
@listener.latency(@options[:latency])
end
@listener.change do |modified, added, removed| @listener = Listen.to(Dir.pwd, options) do |modified, added, removed|
added_and_modified = (modified + added) added_and_modified = (modified + added)
# See if the changed file is config.rb or lib/*.rb # See if the changed file is config.rb or lib/*.rb
@ -131,19 +128,21 @@ module Middleman
@webrick.stop @webrick.stop
else else
added_and_modified.each do |path| added_and_modified.each do |path|
next if app.files.ignored?(path) relative_path = Pathname(path).relative_path_from(Pathname(Dir.pwd)).to_s
app.files.did_change(path) next if app.files.ignored?(relative_path)
app.files.did_change(relative_path)
end end
removed.each do |path| removed.each do |path|
next if app.files.ignored?(path) relative_path = Pathname(path).relative_path_from(Pathname(Dir.pwd)).to_s
app.files.did_delete(path) next if app.files.ignored?(relative_path)
app.files.did_delete(relative_path)
end end
end end
end end
# Don't block this thread # Don't block this thread
@listener.start if first_run @listener.start
end end
# Trap some interupt signals and shut down smoothly # Trap some interupt signals and shut down smoothly