files/fix-trailing-empty-lines

18 lines
343 B
Ruby
Executable File

#!/usr/bin/env ruby
def rm_trailing_empty_lines(fname)
file = File.read(fname, mode: "rb")
new_file = file.sub(%r{(?:(\r\n)(?:\r\n)*|(\n)\n*)\z}, '\1\2')
if file != new_file
File.open(fname, "wb") do |fh|
fh.write(new_file)
end
end
end
ARGV.each do |arg|
if File.file?(arg)
rm_trailing_empty_lines(arg)
end
end