File: update-on-ox

package info (click to toggle)
kitty 0.42.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 28,564 kB
  • sloc: ansic: 82,787; python: 55,191; objc: 5,122; sh: 1,295; xml: 364; makefile: 143; javascript: 78
file content (65 lines) | stat: -rwxr-xr-x 1,819 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/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}')