speed up cleanup
This commit is contained in:
parent
edef0251d3
commit
be8b7715d3
|
@ -1,3 +1,5 @@
|
||||||
|
require 'set'
|
||||||
|
|
||||||
module Jekyll
|
module Jekyll
|
||||||
|
|
||||||
class Site
|
class Site
|
||||||
|
@ -158,13 +160,13 @@ module Jekyll
|
||||||
# Returns nothing
|
# Returns nothing
|
||||||
def cleanup
|
def cleanup
|
||||||
# all files and directories in destination, including hidden ones
|
# all files and directories in destination, including hidden ones
|
||||||
dest_files = []
|
dest_files = Set.new
|
||||||
Dir.glob(File.join(self.dest, "**", "*"), File::FNM_DOTMATCH) do |file|
|
Dir.glob(File.join(self.dest, "**", "*"), File::FNM_DOTMATCH) do |file|
|
||||||
dest_files << file unless file =~ /\/\.{1,2}$/
|
dest_files << file unless file =~ /\/\.{1,2}$/
|
||||||
end
|
end
|
||||||
|
|
||||||
# files to be written
|
# files to be written
|
||||||
files = []
|
files = Set.new
|
||||||
self.posts.each do |post|
|
self.posts.each do |post|
|
||||||
files << post.destination(self.dest)
|
files << post.destination(self.dest)
|
||||||
end
|
end
|
||||||
|
@ -176,11 +178,13 @@ module Jekyll
|
||||||
end
|
end
|
||||||
|
|
||||||
# adding files' parent directories
|
# adding files' parent directories
|
||||||
files.each { |file| files << File.dirname(file) unless files.include? File.dirname(file) }
|
dirs = Set.new
|
||||||
|
files.each { |file| dirs << File.dirname(file) }
|
||||||
|
files.merge(dirs)
|
||||||
|
|
||||||
obsolete_files = dest_files - files
|
obsolete_files = dest_files - files
|
||||||
|
|
||||||
FileUtils.rm_rf(obsolete_files)
|
FileUtils.rm_rf(obsolete_files.to_a)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Write static files, pages and posts
|
# Write static files, pages and posts
|
||||||
|
|
Loading…
Reference in New Issue