123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #!/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'
- if 'dont_sign' not in sys.argv:
- cmd += ' --sign-installers'
- if 'strip' not in sys.argv:
- cmd += ' --dont-strip'
- if 'tests' not in sys.argv:
- cmd += ' --skip-tests'
- if 'notarize' in sys.argv:
- cmd += ' --sign-installers --notarize'
- 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}')
|