Merge branch 'save-changed-files'
This commit is contained in:
commit
2d2809def3
2 changed files with 24 additions and 5 deletions
4
bin/ace
4
bin/ace
|
@ -38,12 +38,14 @@ else
|
||||||
end
|
end
|
||||||
|
|
||||||
rules.rules.each do |klass, files|
|
rules.rules.each do |klass, files|
|
||||||
puts "#{klass} #{files.inspect}"
|
# puts "#{klass} #{files.inspect}"
|
||||||
files.each do |file|
|
files.each do |file|
|
||||||
if File.binread(file).match(/^-{3,5}\s*$/)
|
if File.binread(file).match(/^-{3,5}\s*$/)
|
||||||
|
puts "~ Read #{file} with parse"
|
||||||
raw_item = Ace::RawItem.new(file).tap(&:parse)
|
raw_item = Ace::RawItem.new(file).tap(&:parse)
|
||||||
item = klass.create(raw_item.metadata, raw_item.content)
|
item = klass.create(raw_item.metadata, raw_item.content)
|
||||||
else
|
else
|
||||||
|
puts "~ Read #{file} without parse"
|
||||||
item = klass.create(Hash.new, File.read(file))
|
item = klass.create(Hash.new, File.read(file))
|
||||||
end
|
end
|
||||||
item.original_path = file
|
item.original_path = file
|
||||||
|
|
25
lib/ace.rb
25
lib/ace.rb
|
@ -10,6 +10,7 @@
|
||||||
require "yaml"
|
require "yaml"
|
||||||
require "fileutils"
|
require "fileutils"
|
||||||
require "ace/filters/sass"
|
require "ace/filters/sass"
|
||||||
|
require "digest/sha1"
|
||||||
|
|
||||||
module Ace
|
module Ace
|
||||||
module Helpers
|
module Helpers
|
||||||
|
@ -135,6 +136,10 @@ module Ace
|
||||||
"#{self.base_url}#{self.server_path}"
|
"#{self.base_url}#{self.server_path}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def digest(data)
|
||||||
|
Digest::SHA1.hexdigest(data)
|
||||||
|
end
|
||||||
|
|
||||||
attr_writer :output_path
|
attr_writer :output_path
|
||||||
def output_path
|
def output_path
|
||||||
@output_path ||= begin
|
@output_path ||= begin
|
||||||
|
@ -145,12 +150,24 @@ module Ace
|
||||||
end
|
end
|
||||||
|
|
||||||
def save!
|
def save!
|
||||||
content = self.render # so filters can influence output_path
|
|
||||||
puts "~ [RENDER] #{self.output_path}"
|
puts "~ [RENDER] #{self.output_path}"
|
||||||
|
content = self.render # so filters can influence output_path
|
||||||
|
|
||||||
FileUtils.mkdir_p File.dirname(self.output_path)
|
begin
|
||||||
File.open(self.output_path, "w") do |file|
|
old_content = File.open(self.output_path, "rb") { |f| f.read }
|
||||||
file.puts(content)
|
rescue
|
||||||
|
old_content = ''
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.digest(content) != self.digest(old_content)
|
||||||
|
warn "~ CRC isn't same, save new content into #{self.output_path}"
|
||||||
|
# puts old_content.inspect
|
||||||
|
# puts content.inspect
|
||||||
|
|
||||||
|
FileUtils.mkdir_p File.dirname(self.output_path)
|
||||||
|
File.open(self.output_path, "w") do |file|
|
||||||
|
file.puts(content)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue