import shlex
import stat
import subprocess
from pathlib import Path

ROOT = Path(__file__).resolve().parent
REMOTE = '/storage/contextra/maintenance/fight-r5-20261101-r01'
SSH = ['ssh','-T','-p','1022','-i','/root/.ssh/ltb1021_contextra_icerti2_si_ed25519',
       '-o','BatchMode=yes','-o','StrictHostKeyChecking=yes',
       '-o','UserKnownHostsFile=/root/.ssh/contextra_icerti2_known_hosts',
       '-o','ConnectTimeout=10','si@58.233.207.31']
SECRET = Path('/data/contextra-maintenance/secrets/icerti-ai2/sudo.password')

def run(args, *, sudo=False, payload=None, timeout=60):
    command = shlex.join(args)
    if sudo:
        info = SECRET.stat()
        assert info.st_uid == 0 and stat.S_IMODE(info.st_mode) == 0o600 and not SECRET.is_symlink()
        assert payload is None
        payload = SECRET.read_bytes().rstrip(b'\n') + b'\n'
        command = "sudo -S -p '' " + command
    result = subprocess.run(SSH + [command], input=payload, capture_output=True, timeout=timeout)
    if result.returncode:
        raise RuntimeError('Remote command failed: ' + result.stderr.decode(errors='replace')[-1200:])
    return result.stdout

def python(code, *, sudo=False, timeout=60):
    return run(['python3','-c',code],sudo=sudo,timeout=timeout)
