From eb275988bdf8758002802df8c90e8f9fc855e4d8 Mon Sep 17 00:00:00 2001 From: Lukas Wurzinger Date: Fri, 2 May 2025 01:26:19 +0200 Subject: [PATCH] improve filtering --- src/forgesync/cli.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/forgesync/cli.py b/src/forgesync/cli.py index d63ccc0..f7e22f8 100644 --- a/src/forgesync/cli.py +++ b/src/forgesync/cli.py @@ -31,8 +31,10 @@ class ArgumentParser(Tap): "repository mirror interval" log: str = "INFO" "log level" - filter: str | None = None - "filter repositories by this regular expression" + include: str | None = None + "include repositories by this regular expression" + exclude: str | None = None + "exclude repositories by this regular expression" immediate: bool = False "tell Forgejo to mirror Git repositories immediately" sync_on_commit: bool = False @@ -144,8 +146,13 @@ def main() -> None: repo=repo.name, ) - if args.filter is not None: - pattern = compile(args.filter) + if args.include is not None: + pattern = compile(args.include) + if pattern.search(repo.name) is None: + continue + + if args.exclude is not None: + pattern = compile(args.exclude) if pattern.search(repo.name) is not None: continue