#!/usr/bin/env python3 """ Check for required system dependencies for the Hotel Booking platform. """ import subprocess import shutil import sys import platform def check_command(command, name, install_instructions): """Check if a command is available.""" if shutil.which(command): version_output = subprocess.run( [command, '--version'], capture_output=True, text=True, timeout=5 ) version = version_output.stdout.split('\n')[0] if version_output.returncode == 0 else 'installed' print(f"✓ {name}: {version}") return True else: print(f"✗ {name}: NOT FOUND") print(f" Installation: {install_instructions}") return False def main(): """Check all dependencies.""" print("=" * 60) print("Checking System Dependencies") print("=" * 60) print() all_ok = True # Check mysqldump os_type = platform.system().lower() if os_type == 'linux': distro = platform.linux_distribution()[0].lower() if hasattr(platform, 'linux_distribution') else 'unknown' if 'ubuntu' in distro or 'debian' in distro: install_cmd = "sudo apt-get install mysql-client" elif 'centos' in distro or 'rhel' in distro or 'fedora' in distro: install_cmd = "sudo yum install mysql (or sudo dnf install mysql)" else: install_cmd = "Install MySQL client tools for your distribution" elif os_type == 'darwin': install_cmd = "brew install mysql-client" else: install_cmd = "Install MySQL client tools for your OS" if not check_command('mysqldump', 'mysqldump (MySQL client)', install_cmd): all_ok = False print() print("=" * 60) if all_ok: print("✓ All dependencies are installed!") return 0 else: print("✗ Some dependencies are missing.") print() print("You can install mysqldump using the provided script:") print(" bash scripts/install_mysqldump.sh") return 1 if __name__ == '__main__': sys.exit(main())