import paramiko
import os

HOST = "135.125.102.180"
USER = "ubuntu"
PASS = "BotPascal2026!"
REMOTE_BASE = "/var/www/html/repondeur_mail_grok"

FILES_TO_DEPLOY = [
    ("scripts/scan.php", f"{REMOTE_BASE}/scripts/scan.php"),
    ("public/index.php", f"{REMOTE_BASE}/public/index.php")
]

def main():
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(HOST, username=USER, password=PASS)
        
        sftp = ssh.open_sftp()
        
        for local, remote in FILES_TO_DEPLOY:
            local_path = os.path.join(os.getcwd(), local)
            
            if not os.path.exists(local_path):
                print(f"⚠️ Skipping {local} (not found)")
                continue
            
            tmp_remote = f"/tmp/{os.path.basename(remote)}_{os.getpid()}"
            
            print(f"📤 Uploading {local}...")
            sftp.put(local_path, tmp_remote)
            
            print(f"📦 Moving to {remote}...")
            ssh.exec_command(f"sudo mv {tmp_remote} {remote}")
            ssh.exec_command(f"sudo chown www-data:www-data {remote}")
            ssh.exec_command(f"sudo chmod 755 {remote}")
        
        sftp.close()
        
        print("\n✅ Fichiers déployés!")
        print("\n🔄 Lancement d'un scan pour tester...")
        
        # Run scan to test
        stdin, stdout, stderr = ssh.exec_command(f"cd {REMOTE_BASE} && timeout 30 php scripts/scan.php 2>&1 || echo 'Scan timeout (normal si > 30s)'")
        output = stdout.read().decode()
        
        if output:
            print("\n📋 Résultat du scan (aperçu):")
            lines = output.split('\n')
            for line in lines[:10]:  # First 10 lines
                if line.strip():
                    print(f"   {line}")
            if len(lines) > 10:
                print(f"   ... ({len(lines)-10} lignes supplémentaires)")
        
        ssh.close()
        print("\n✅ Déploiement terminé!")
        
    except Exception as e:
        print(f"❌ Error: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    main()
