#!/usr/bin/env python3 """Patch join page TS fix on production.""" import base64 import sys import paramiko HOST = "82.157.112.245" USER = "ubuntu" PASSWORD = "Xiao4669805" LOCAL = r"c:\Users\admin\Desktop\gitlab-instance-0a899031_cnomadcna\app\[locale]\join\page.tsx" REMOTE = "/home/ubuntu/gitlab-instance-0a899031_cnomadcna/app/[locale]/join/page.tsx" TMP = "/tmp/join-page.tsx" content = open(LOCAL, encoding="utf-8").read() b64 = base64.b64encode(content.encode("utf-8")).decode() c = paramiko.SSHClient() c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) c.connect(HOST, username=USER, password=PASSWORD, timeout=30) cmd = ( f"python3 -c \"import base64; open('{TMP}','wb').write(base64.b64decode('{b64}'))\" " f"&& cp {TMP} {REMOTE} && chown ubuntu:ubuntu {REMOTE} && echo uploaded" ) _, o, e = c.exec_command(f"echo '{PASSWORD}' | sudo -S bash -lc \"{cmd}\"", timeout=120) out = o.read().decode() err = e.read().decode() code = o.channel.recv_exit_status() sys.stdout.write(out) sys.stdout.write(err) c.close() sys.exit(code)