Add artifact.whitelist_expiration/src/artifact_whitelist_expiration/cli.py
This commit is contained in:
parent
5c12809983
commit
e30a561801
1 changed files with 44 additions and 0 deletions
|
|
@ -0,0 +1,44 @@
|
|||
import argparse
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from artifact_whitelist_expiration import core
|
||||
|
||||
def main() -> None:
|
||||
"""CLI entrypoint for managing whitelist entries."""
|
||||
parser = argparse.ArgumentParser(description="Whitelist Expiration Management Tool")
|
||||
parser.add_argument("--input", required=True, help="Pfad zur Whitelist-Datei im JSON-Format.")
|
||||
parser.add_argument("--action", required=True, choices=["set", "renew"], help="Festzulegende Aktion ('set' oder 'renew').")
|
||||
parser.add_argument("--entry-id", required=False, help="Eindeutige Kennung des Whitelist-Eintrags.")
|
||||
parser.add_argument("--days", required=False, type=int, help="Anzahl der Tage bis zum Ablauf (nur für Aktion 'set').")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
input_path = Path(args.input)
|
||||
if not input_path.exists():
|
||||
print(f"Fehler: Datei {input_path} nicht gefunden.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
if args.action == "set":
|
||||
if not args.entry_id or args.days is None:
|
||||
print("Fehler: Für 'set' müssen --entry-id und --days angegeben werden.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
core.set_expiration(entry_id=args.entry_id, days=args.days)
|
||||
print(f"Ablaufdatum für Eintrag '{args.entry_id}' gesetzt.")
|
||||
|
||||
elif args.action == "renew":
|
||||
if not args.entry_id:
|
||||
print("Fehler: Für 'renew' muss --entry-id angegeben werden.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
renewed = core.renew_entry(entry_id=args.entry_id)
|
||||
if renewed:
|
||||
print(f"Eintrag '{args.entry_id}' erfolgreich verlängert.")
|
||||
else:
|
||||
print(f"Eintrag '{args.entry_id}' konnte nicht verlängert werden (möglicherweise abgelaufen).", file=sys.stderr)
|
||||
|
||||
except Exception as exc:
|
||||
print(f"Fehler bei der Verarbeitung: {exc}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Reference in a new issue