Update listen code
This commit is contained in:
parent
7b85a44afb
commit
d8f84fa97b
1 changed files with 13 additions and 14 deletions
|
@ -111,18 +111,15 @@ module Middleman
|
|||
end
|
||||
|
||||
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
|
||||
# Watcher Library
|
||||
require 'listen'
|
||||
@listener = Listen.to(Dir.pwd, relative_paths: true, force_polling: @options[:force_polling])
|
||||
@listener.latency(@options[:latency])
|
||||
end
|
||||
options = {force_polling: @options[:force_polling]}
|
||||
options[:latency] = @options[:latency] if @options[:latency]
|
||||
|
||||
@listener.change do |modified, added, removed|
|
||||
@listener = Listen.to(Dir.pwd, options) do |modified, added, removed|
|
||||
added_and_modified = (modified + added)
|
||||
|
||||
# See if the changed file is config.rb or lib/*.rb
|
||||
|
@ -131,19 +128,21 @@ module Middleman
|
|||
@webrick.stop
|
||||
else
|
||||
added_and_modified.each do |path|
|
||||
next if app.files.ignored?(path)
|
||||
app.files.did_change(path)
|
||||
relative_path = Pathname(path).relative_path_from(Pathname(Dir.pwd)).to_s
|
||||
next if app.files.ignored?(relative_path)
|
||||
app.files.did_change(relative_path)
|
||||
end
|
||||
|
||||
removed.each do |path|
|
||||
next if app.files.ignored?(path)
|
||||
app.files.did_delete(path)
|
||||
relative_path = Pathname(path).relative_path_from(Pathname(Dir.pwd)).to_s
|
||||
next if app.files.ignored?(relative_path)
|
||||
app.files.did_delete(relative_path)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Don't block this thread
|
||||
@listener.start if first_run
|
||||
@listener.start
|
||||
end
|
||||
|
||||
# Trap some interupt signals and shut down smoothly
|
||||
|
|
Loading…
Reference in a new issue