#!/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
