17 lines
813 B
Python
17 lines
813 B
Python
#!/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)]))
|