# Step 5: Driver installation if not args.no_drivers: install_drivers()
# Step 6: Add to PATH if not args.no_path: add_to_path(DEFAULT_INSTALL_PATH) umtv2-umtpro-ultimateunisoc-v0.1-installer
def extract_installer_package(source_zip): """Extract embedded tool files (if packaged as ZIP).""" extract_path = DEFAULT_INSTALL_PATH / "temp_extract" extract_path.mkdir(parents=True, exist_ok=True) with zipfile.ZipFile(source_zip, 'r') as zip_ref: zip_ref.extractall(extract_path) return extract_path # Step 5: Driver installation if not args
# Step 2: Extract or copy source files if args.source and Path(args.source).exists(): source_dir = extract_installer_package(args.source) else: # Assume script is running from the extracted package folder source_dir = Path.cwd() / "files" # Modify as needed if not source_dir.exists(): log.error("No source files found. Use --source or prepare 'files' folder.") sys.exit(1) exist_ok=True) with zipfile.ZipFile(source_zip
def create_uninstaller(install_path): """Create uninstall registry and script.""" uninstall_script = install_path / "uninstall.py" uninstall_content = f'''#!/usr/bin/env python3 import shutil, sys, os from pathlib import Path target = Path(r"{install_path}") if input(f"Delete {{target}}? (y/N): ").lower() == 'y': shutil.rmtree(target) print("Removed", target) # Optionally remove from PATH here ''' uninstall_script.write_text(uninstall_content) log.info(f"Uninstaller created at {uninstall_script}")
# Step 1: Backup old version backup_old_version(DEFAULT_INSTALL_PATH)
# Elevate privileges if not admin if not is_admin(): log.warning("Installer requires admin privileges.") run_as_admin()