blob: 25786aa0c38e9e6a096c5bd9899ed61c1bcab17b [file] [log] [blame]
#!/usr/bin/env ruby
def update_directory(directory)
Dir.entries(directory).each do | file |
path = "#{directory}/#{file}"
if File.directory?(path)
update_directory(path) unless (file =~ /^[.]+$/)
else
update_file(path) if file =~ /\.(h|m|mm)$/
end
end
end
def update_file(filename)
tmpname = "#{filename}.orig"
`mv #{filename} #{tmpname}`
infile = File.open("#{tmpname}", "r")
outfile = File.open("#{filename}", "w")
replace_banner(infile, outfile)
`rm #{tmpname}`
end
def replace_banner(infile, outfile)
in_banner = true
year = nil
infile.each_line do | line |
if in_banner
copyright_match = /Copyright \(c\) ([0-9]{4})/.match(line)
if copyright_match
year = copyright_match[1]
end
if !(line =~ /^\/\//) && !(line =~ /^[\/ ]\*/)
write_banner(outfile, year)
in_banner = false
end
end
if !in_banner
outfile.puts line
end
end
end
def write_banner(outfile, year)
banner = <<-EOS
/*
* Copyright (c) %YEARS% Erik Doernenburg and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use these files except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
EOS
years = (year != "2021") ? "#{year}-2021" : year
banner.gsub!(/%YEARS%/, years)
outfile.write(banner)
end
update_directory(ARGV[0])