Wbfs [exclusive] -

def format_partition(self, device): """Format a partition as WBFS (WARNING: ERASES DATA)""" print(f"\n⚠️ WARNING: This will erase ALL data on {device}") confirm = input(f"Type 'YES' to format {device} as WBFS: ") if confirm == "YES": try: subprocess.run(['sudo', 'wbfs-tool', device, 'init'], check=True) print(f"✅ Successfully formatted {device} as WBFS") except subprocess.CalledProcessError as e: print(f"❌ Format failed: {e}") else: print("Format cancelled.")

def check_usage(self, device): """Show used/free space on WBFS partition""" try: result = subprocess.run(['sudo', 'wbfs-tool', device, 'df'], capture_output=True, text=True, check=True) print("\n💾 Disk Usage:") print(result.stdout) except: print("❌ Could not read disk usage.") ➖ Remove game from WBFS drive") print("4

def interactive_menu(self): """Main interactive menu""" while True: print("\n" + "="*50) print("🎮 WBFS MANAGER - Wii Backup File System Tool") print("="*50) print("1. 📋 List all games on WBFS drive") print("2. ➕ Add game (ISO/WBFS) to WBFS drive") print("3. ➖ Remove game from WBFS drive") print("4. 💾 Extract game from WBFS to file") print("5. 🆕 Format drive/partition as WBFS (ERASE ALL)") print("6. 📊 Check disk usage") print("7. 🚪 Exit") choice = input("\nSelect option (1-7): ").strip() if choice == '1': device = input("Enter WBFS device (e.g., /dev/sdb1): ") self.list_games(device) elif choice == '2': device = input("Enter WBFS device: ") game_file = input("Enter path to ISO/WBFS file: ") self.add_game(device, game_file) elif choice == '3': device = input("Enter WBFS device: ") self.list_games(device) game_id = input("Enter Game ID to remove (e.g., SMNE01): ") self.remove_game(device, game_id) elif choice == '4': device = input("Enter WBFS device: ") self.list_games(device) game_id = input("Enter Game ID to extract: ") output = input("Output filename (e.g., game.iso): ") self.extract_game(device, game_id, output) elif choice == '5': device = input("Enter device to format (e.g., /dev/sdb): ") self.format_partition(device) elif choice == '6': device = input("Enter WBFS device: ") self.check_usage(device) elif choice == '7': print("👋 Goodbye!") break else: print("❌ Invalid choice. Please try again.") def main(): if os.geteuid() != 0: print("⚠️ This tool requires root privileges for most operations.") print("Please run with: sudo python3 wbfs_manager.py") sys.exit(1) 📊 Check disk usage") print("7

print(f"🎮 Found {len(games_found)} games:") for i, game in enumerate(games_found, 1): size_mb = os.path.getsize(game) / (1024*1024) print(f" {i}. {Path(game).name} ({size_mb:.1f} MB)") {Path(game).name} ({size_mb:.1f} MB)")