file2lastrev.rb: try to overwrite the found revision.h as before

This commit is contained in:
Nobuyoshi Nakada 2022-11-02 12:18:17 +09:00
parent ac06951c31
commit 3475b66160
No known key found for this signature in database
GPG Key ID: 7CD2805BFA3770C6
2 changed files with 9 additions and 6 deletions

View File

@ -90,7 +90,7 @@ formatter =
ok = true
(ARGV.empty? ? [nil] : ARGV).each do |arg|
begin
@output.write(formatter[*vcs.get_revisions(arg)]+"\n")
@output.write(formatter[*vcs.get_revisions(arg)]+"\n", overwrite: true)
rescue => e
warn "#{File.basename(Program)}: #{e.message}"
ok = false

View File

@ -18,7 +18,7 @@ class Output
@vpath.def_options(opt)
end
def write(data)
def write(data, overwrite: false)
unless @path
$stdout.print data
return true
@ -26,13 +26,16 @@ class Output
color = Colorize.new(@color)
unchanged = color.pass("unchanged")
updated = color.fail("updated")
outpath = nil
if @ifchange and (@vpath.read(@path, "rb") == data rescue false)
puts "#{@path} #{unchanged}"
if @ifchange and (@vpath.open(@path, "rb") {|f| outpath = f.path; f.read == data} rescue false)
puts "#{outpath} #{unchanged}"
written = false
else
File.binwrite(@path, data)
puts "#{@path} #{updated}"
unless overwrite and outpath and (File.binwrite(outpath, data) rescue nil)
File.binwrite(outpath = @path, data)
end
puts "#{outpath} #{updated}"
written = true
end
if timestamp = @timestamp