kitty/update-on-ox
Kovid Goyal 77292a16d6
Make shebangs consistent
Follow PEP 0394 and use /usr/bin/env python so that the python in the
users venv is respected. Not that the kitty python files are meant to be
executed standalone anyway, but, whatever.

Fixes #6810
2023-11-11 08:32:05 +05:30

62 lines
1.7 KiB
Python
Executable File

#!/usr/bin/env python
# vim:fileencoding=utf-8
# License: GPL v3 Copyright: 2017, Kovid Goyal <kovid at kovidgoyal.net>
import atexit
import glob
import os
import shlex
import shutil
import subprocess
import sys
import tempfile
if False:
dmg = sys.argv[-1]
mp = tempfile.mkdtemp()
atexit.register(os.rmdir, mp)
subprocess.check_call(f'hdiutil attach {dmg} -mountpoint {mp}'.split())
try:
os.chdir(mp)
for app in glob.glob('*.app'):
d = os.path.join('/Applications', app)
if os.path.exists(d):
shutil.rmtree(d)
subprocess.check_call(f'ditto -v {app} {d}'.split())
finally:
os.chdir('/')
subprocess.check_call(f'hdiutil detach {mp}'.split())
# EOF_REMOTE
HOST = 'ox'
base = os.path.dirname(os.path.abspath(__file__))
if True:
sys.path.insert(0, base)
from kitty.constants import str_version
dmg = f'kitty-{str_version}.dmg'
def run(what):
ret = subprocess.run(shlex.split(what))
if ret.returncode != 0:
raise SystemExit(ret.returncode)
with open(__file__, 'rb') as f:
script = f.read().decode('utf-8')
script = script[:script.find('# EOF_REMOTE')].replace('if False:', 'if True:', 1)
with tempfile.NamedTemporaryFile(prefix='install-dmg-', suffix='.py') as f:
cmd = 'python ../bypy macos program --dont-strip'
if 'sign' in sys.argv:
cmd += ' --sign-installers --notarize'
if 'skip_tests' in sys.argv:
cmd += ' --skip-tests'
run(cmd)
f.write(script.encode('utf-8'))
f.flush()
run(f'scp bypy/b/macos/dist/{dmg} {f.name} {HOST}:/tmp')
run(f'ssh {HOST} python3 /tmp/{os.path.basename(f.name)} /tmp/{dmg}')