| #!/usr/bin/env ruby |
| |
| # Verify that all source files have the license header. |
| |
| LICENSE = <<EOF |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file 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. |
| EOF |
| |
| LICENSE_REGEX = Regexp.new("^#{Regexp.quote(LICENSE)}",Regexp::MULTILINE) |
| |
| |
| def file_has_license?(file) |
| LICENSE_REGEX =~ File.read(file) |
| end |
| |
| def find_unlicensed_files(dir) |
| Dir["#{dir}/**/*.java"].find_all do |file| |
| not file_has_license? file |
| end |
| end |
| |
| files_without_license = [] |
| |
| source_dirs = ["src/java/datafu/linkanalysis","src/java/datafu/pig"] |
| |
| source_dirs.each do |dir| |
| files_without_license.concat find_unlicensed_files(dir) |
| end |
| |
| if files_without_license.size > 0 |
| puts "The following file are missing the license header:" |
| files_without_license.each { |file| puts " #{file}"} |
| exit false |
| else |
| puts "All source files have the license header" |
| end |