2024-03-14 10:51:25 +01:00
|
|
|
#!/usr/bin/env python3
|
2026-01-21 12:34:59 +01:00
|
|
|
# Copyright (C) 2024-2026 Whiterun LLC,
|
2024-03-14 10:51:25 +01:00
|
|
|
# This software is licensed under the GNU Affero General Public License (AGPL), version 3.0 or later.,
|
|
|
|
|
# A copy of the license can be found in the LICENSE file or at https://www.gnu.org/licenses/agpl-3.0.html
|
|
|
|
|
|
|
|
|
|
import os
|
|
|
|
|
import subprocess
|
|
|
|
|
import sys
|
|
|
|
|
|
|
|
|
|
def run_python_file(filepath):
|
|
|
|
|
result = subprocess.run(filepath)
|
|
|
|
|
return result.returncode == 0
|
|
|
|
|
|
|
|
|
|
def run_all_linters_in_folder(folder_path):
|
|
|
|
|
failures = 0
|
|
|
|
|
for filename in os.listdir(folder_path):
|
|
|
|
|
# Ensure we're not attempting to run this script itself
|
|
|
|
|
if filename.endswith('.py') and filename != os.path.basename(__file__):
|
|
|
|
|
filepath = os.path.join(folder_path, filename)
|
|
|
|
|
print(f"Running linter: {filename}")
|
|
|
|
|
if not run_python_file(filepath):
|
|
|
|
|
failures += 1
|
|
|
|
|
|
|
|
|
|
if failures != 0:
|
|
|
|
|
print(f"{failures} linter(s) failed")
|
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
folder_path = os.path.dirname(os.path.realpath(__file__))
|
|
|
|
|
run_all_linters_in_folder(folder_path)
|
|
|
|
|
|