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