2024-07-25 19:05:09 +02:00
|
|
|
#!/usr/bin/ruby
|
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
license_header = <<~EOF
|
|
|
|
// Copyright Citra Emulator Project / Lime3DS Emulator Project
|
|
|
|
// Licensed under GPLv2 or any later version
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
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|
|
2024-07-27 16:23:38 +02:00
|
|
|
if file_name.end_with?('.cpp', '.h', '.kt') and File.file?(file_name)
|
2024-07-25 19:05:09 +02:00
|
|
|
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
|
|
|
|
|
2024-07-26 00:59:18 +02:00
|
|
|
exit 1
|