diff --git a/setup/operations/backup.py b/setup/operations/backup.py index 5230e92..5a57d21 100644 --- a/setup/operations/backup.py +++ b/setup/operations/backup.py @@ -487,6 +487,15 @@ def run(args: argparse.Namespace) -> int: operation = BackupOperation() operation.setup_operation_logging(args) logger = get_logger() + # ✅ Inserted validation code + expected_home = Path.home().resolve() + actual_dir = args.install_dir.resolve() + + if not str(actual_dir).startswith(str(expected_home)): + print(f"\n[✗] Installation must be inside your user profile directory.") + print(f" Expected prefix: {expected_home}") + print(f" Provided path: {actual_dir}") + sys.exit(1) try: # Validate global arguments @@ -576,4 +585,4 @@ def run(args: argparse.Namespace) -> int: print(f"\n{Colors.YELLOW}Backup operation cancelled by user{Colors.RESET}") return 130 except Exception as e: - return operation.handle_operation_error("backup", e) \ No newline at end of file + return operation.handle_operation_error("backup", e)