Spaces:
Runtime error
Runtime error
| import subprocess | |
| import sys | |
| def get_staged_files(): | |
| result = subprocess.run(["git", "diff", "--cached", "--name-only"], stdout=subprocess.PIPE, text=True) | |
| files = result.stdout.splitlines() | |
| return files | |
| def get_commit_message(commit_msg_filepath): | |
| with open(commit_msg_filepath, 'r') as f: | |
| return f.readline().strip() | |
| def main(): | |
| commit_msg_filepath = sys.argv[1] | |
| commit_message = get_commit_message(commit_msg_filepath) | |
| staged_files = get_staged_files() | |
| has_plus_changes = any(f.startswith('src/plus') for f in staged_files) | |
| print(commit_message) | |
| starts_with_plus = commit_message.startswith('[PLUS]') | |
| if has_plus_changes and not starts_with_plus: | |
| print("'[PLUS]' not found in commit message, but there's changes are from 'src/plus'.") | |
| return 1 | |
| if starts_with_plus and not all(f.startswith('src/plus') for f in staged_files): | |
| print("'[PLUS]' found in commit message, but there's changes from other directories. \n" | |
| "Changes MUST be only from 'src/plus'.") | |
| return 1 | |
| return 0 | |
| if __name__ == "__main__": | |
| sys.exit(main()) | |