1#!/usr/local/bin/python3.8 2# vim:fileencoding=utf-8 3# License: GPL v3 Copyright: 2017, Kovid Goyal <kovid at kovidgoyal.net> 4 5import os 6import shlex 7import shutil 8import subprocess 9import sys 10import tempfile 11from contextlib import suppress 12 13if False: 14 tarball = sys.argv[-1] 15 dest = os.path.expanduser('~/.local/kitty.app') 16 shutil.rmtree(dest, ignore_errors=True) 17 os.makedirs(dest) 18 os.chdir(dest) 19 dest = os.path.expanduser('~/.local/bin/kitty') 20 with suppress(OSError): 21 os.remove(dest) 22 with suppress(OSError): 23 os.makedirs(os.path.dirname(dest)) 24 subprocess.check_call(['tar', 'xJf', tarball]) 25 os.symlink(os.path.abspath('bin/kitty'), dest) 26 print('kitty installed to ~/.local/kitty.app') 27 28 29# EOF_REMOTE 30 31HOST = 'ubuntu' 32 33base = os.path.dirname(os.path.abspath(__file__)) 34if True: 35 sys.path.insert(0, base) 36 from kitty.constants import str_version 37 38tarball = f'kitty-{str_version}-x86_64.txz' 39 40 41def run(what): 42 ret = subprocess.run(shlex.split(what)) 43 if ret.returncode != 0: 44 raise SystemExit(ret.returncode) 45 46 47with open(__file__, 'rb') as f: 48 script = f.read().decode('utf-8') 49script = script[:script.find('# EOF_REMOTE')].replace('if False:', 'if True:', 1) 50with tempfile.NamedTemporaryFile(prefix='install-tarball-', suffix='.py') as f: 51 run('python ../bypy linux program --dont-strip --compression-level=1') 52 f.write(script.encode('utf-8')) 53 f.flush() 54 run(f'scp bypy/b/linux/64/sw/dist/{tarball} {f.name} {HOST}:/tmp') 55 run(f'ssh {HOST} python /tmp/{os.path.basename(f.name)} /tmp/{tarball}') 56