diff --git a/update-on-ubuntu b/update-on-ubuntu new file mode 100755 index 000000000..cdce90190 --- /dev/null +++ b/update-on-ubuntu @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +# vim:fileencoding=utf-8 +# License: GPL v3 Copyright: 2017, Kovid Goyal + +import os +import shlex +import shutil +import subprocess +import sys +import tempfile + +if False: + tarball = sys.argv[-1] + dest = os.path.expanduser('~/.local/kitty.app') + shutil.rmtree(dest, ignore_errors=True) + os.makedirs(dest) + os.chdir(dest) + dest = os.path.expanduser('~/.local/bin/kitty') + try: + os.remove(dest) + except EnvironmentError: + pass + try: + os.makedirs(os.path.dirname(dest)) + except EnvironmentError: + pass + subprocess.check_call(['tar', 'xJf', tarball]) + os.symlink(os.path.abspath('bin/kitty'), dest) + print('kitty installed to ~/.local/kitty.app') + + +# EOF_REMOTE + +HOST = 'ubuntu' + +base = os.path.dirname(os.path.abspath(__file__)) +if True: + sys.path.insert(0, base) + from kitty.constants import str_version + +tarball = f'kitty-{str_version}-x86_64.txz' + + +def run(what): + ret = subprocess.run(shlex.split(what)) + if ret.returncode != 0: + raise SystemExit(ret.returncode) + + +script = open(__file__, 'rb').read().decode('utf-8') +script = script[:script.find('# EOF_REMOTE')].replace('if False:', 'if True:', 1) +os.chdir(os.path.expanduser('~/work/build-kitty')) +with tempfile.NamedTemporaryFile(prefix='install-tarball-', suffix='.py') as f: + run('./linux 64 kitty') + f.write(script.encode('utf-8')) + f.flush() + run(f'scp build/linux/64/sw/dist/{tarball} {f.name} {HOST}:/tmp') + run(f'ssh {HOST} python /tmp/{os.path.basename(f.name)} /tmp/{tarball}')