From defd991006dd8caa94b1cc42d3b810159c96dd4b Mon Sep 17 00:00:00 2001 From: Kharec Date: Sat, 20 Dec 2025 15:59:17 +0100 Subject: [PATCH] feat: new safeguard module --- skywipe/safeguard.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 skywipe/safeguard.py diff --git a/skywipe/safeguard.py b/skywipe/safeguard.py new file mode 100644 index 0000000..c3b7924 --- /dev/null +++ b/skywipe/safeguard.py @@ -0,0 +1,27 @@ +"""Safeguard module for Skywipe""" + +import sys +from .logger import get_logger + + +CONFIRM_RESPONSES = {"yes", "y"} + + +def require_confirmation(operation: str, skip_confirmation: bool = False) -> None: + if skip_confirmation: + return + + logger = get_logger() + logger.warning(f"This will {operation}") + logger.warning("This operation is DESTRUCTIVE and cannot be undone!") + + try: + response = input( + "Are you sure you want to continue? (y/N): ").strip().lower() + except (EOFError, KeyboardInterrupt): + logger.info("\nOperation cancelled.") + sys.exit(0) + + if response not in CONFIRM_RESPONSES: + logger.info("Operation cancelled.") + sys.exit(0)