#!/usr/bin/ruby # frozen_string_literal: true license_header = <<~EOF // SPDX-FileCopyrightText: Copyright yuzu/Citra Emulator Project / Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later EOF print 'Getting branch changes...' branch_name = `git rev-parse --abbrev-ref HEAD`.chomp branch_commits = `git log #{branch_name} --not master --pretty=format:"%h"`.split("\n") branch_commit_range = "#{branch_commits[-1]}^..#{branch_commits[0]}" branch_changed_files = `git diff-tree --no-commit-id --name-only #{branch_commit_range} -r`.split("\n") puts 'done' print 'Checking files...' issue_files = [] branch_changed_files.each do |file_name| if file_name.end_with?('.cpp', '.h', '.kt', '.kts') and File.file?(file_name) file_content = File.read(file_name) if not file_content.start_with?(license_header) issue_files.push(file_name) end end end puts 'done' if issue_files.empty? puts "\nAll changed files have correct headers" exit 0 end puts <<-EOF The following #{issue_files.length} files have incorrect license headers: #{issue_files.join("\n")} The following license header should be added to the start of all offending files: === BEGIN === #{license_header} === END === If some of the code in this PR is not being contributed by the original author, the files which have been exclusively changed by that code can be ignored. If this happens, this PR requirement can be bypassed once all other files are addressed. EOF exit 1