From a70b39250252962df17670cee743d01d1a6f7c16 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 9 Jan 2017 17:09:27 -0500 Subject: fix --- lib/sitegen.rb | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) (limited to 'lib/sitegen.rb') diff --git a/lib/sitegen.rb b/lib/sitegen.rb index 765cfbd..ca0c4bf 100644 --- a/lib/sitegen.rb +++ b/lib/sitegen.rb @@ -65,12 +65,14 @@ module Sitegen when @mk[target].nil? raise "No rule to make target '#{target}'. Stop." when target.end_with?(".atom") - write_ifchanged(target) do |file| + puts "atom #{target}" + write_atomic(target) do |file| file.puts('') file.print(@mk[target].atom) end when target.end_with?(".html") - write_ifchanged(target) do |file| + puts "html #{target}" + write_atomic(target) do |file| file.print(@mk[target].html) end else @@ -78,10 +80,9 @@ module Sitegen end end - def self.write_ifchanged(outfilename) + def self.write_atomic(outfilename) tmpfilename = "#{File::dirname(outfilename)}/.tmp#{File::basename(outfilename)}" - # Write our stuff to tmpfile FileUtils::mkdir_p(File::dirname(tmpfilename)) tmpfile = File::new(tmpfilename, 'wb') begin @@ -92,21 +93,6 @@ module Sitegen raise e end tmpfile.close - - # Now see if we should replace outfile with tmpfile - same = false - begin - if FileUtils::compare_file(tmpfilename, outfilename) - same = true - end - rescue Errno::ENOENT - end - - # And actually do so - if same - File::unlink(tmpfilename) - else - File::rename(tmpfilename, outfilename) - end + File::rename(tmpfilename, outfilename) end end -- cgit v1.2.3