From f55569356fa3c6c6f386251d2c98a9fb101d3849 Mon Sep 17 00:00:00 2001 From: Astound Date: Tue, 15 Jul 2025 16:00:08 -0500 Subject: [PATCH] Add gitleaks patch support --- gitleaks_scan.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/gitleaks_scan.py b/gitleaks_scan.py index 32125df..fbea1c8 100755 --- a/gitleaks_scan.py +++ b/gitleaks_scan.py @@ -43,6 +43,16 @@ def get_installed_version(): except Exception: return None +def compare_versions(v1, v2): + def parse(v): + return [int(part) for part in v.split(".")] + v1_parts = parse(v1) + v2_parts = parse(v2) + length = max(len(v1_parts), len(v2_parts)) + v1_parts += [0] * (length - len(v1_parts)) + v2_parts += [0] * (length - len(v2_parts)) + return v1_parts >= v2_parts + def get_platform_and_arch(): import platform system = platform.system().lower() @@ -85,10 +95,11 @@ def install_gitleaks(version, force): current_version = get_installed_version() if installed and not force: - if current_version == version: + if compare_versions(current_version, version): + print(f"Gitleaks {current_version} is already installed and is >= {version}. Skipping install.") return else: - print(f"Gitleaks {current_version} is installed, but version {version} is required.") + print(f"Gitleaks {current_version} is installed, but version >= {version} is required.") print(" Use --force to reinstall.") return