#!/usr/bin/env python3 """Send recovery and shared deployment helpers in a single SSH connection.""" import base64 from pathlib import Path import shlex import subprocess import sys root = Path(__file__).parent helper = base64.b64encode((root / 'deploy-update-remote.py').read_bytes()).decode('ascii') recovery = base64.b64encode((root / 'admin-recovery-remote.py').read_bytes()).decode('ascii') program = ("import base64; scope={'__name__':'recovery_helpers'}; " "exec(compile(base64.b64decode('" + helper + "'),'deployment','exec'),scope); " "scope['__name__']='__main__'; " "exec(compile(base64.b64decode('" + recovery + "'),'admin-recovery','exec'),scope)") raise SystemExit(subprocess.call(['ssh', '-o', 'BatchMode=yes', sys.argv[1], 'python3 -c ' + shlex.quote(program)]))