mirror of
https://github.com/kovidgoyal/kitty.git
synced 2024-09-21 19:47:21 +03:00
f774841ee0
Dont use symlinks in the tarball, instead create them in the bootstrap scripts, only if needed.
49 lines
1.5 KiB
Python
Executable File
49 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# vim:fileencoding=utf-8
|
|
# License: GPL v3 Copyright: 2019, Kovid Goyal <kovid at kovidgoyal.net>
|
|
|
|
import glob
|
|
import os
|
|
import re
|
|
import shutil
|
|
import subprocess
|
|
import sys
|
|
import tempfile
|
|
|
|
|
|
def compile_terminfo(base):
|
|
with tempfile.TemporaryDirectory() as tdir:
|
|
proc = subprocess.run(['tic', '-x', f'-o{tdir}', 'terminfo/kitty.terminfo'], check=True, stderr=subprocess.PIPE)
|
|
regex = '^"terminfo/kitty.terminfo", line [0-9]+, col [0-9]+, terminal \'xterm-kitty\': older tic versions may treat the description field as an alias$'
|
|
for error in proc.stderr.decode('utf-8').splitlines():
|
|
if not re.match(regex, error):
|
|
print(error, file=sys.stderr)
|
|
tfiles = glob.glob(os.path.join(tdir, '*', 'xterm-kitty'))
|
|
if not tfiles:
|
|
raise SystemExit('tic failed to output the compiled kitty terminfo file')
|
|
|
|
tfile = tfiles[0]
|
|
directory, xterm_kitty = os.path.split(tfile)
|
|
_, directory = os.path.split(directory)
|
|
odir = os.path.join(base, directory)
|
|
os.makedirs(odir, exist_ok=True)
|
|
ofile = os.path.join(odir, xterm_kitty)
|
|
shutil.move(tfile, ofile)
|
|
|
|
|
|
def generate_terminfo():
|
|
base = os.path.dirname(os.path.abspath(__file__))
|
|
os.chdir(base)
|
|
sys.path.insert(0, base)
|
|
|
|
from kitty.terminfo import generate_terminfo
|
|
|
|
with open('terminfo/kitty.terminfo', 'w') as f:
|
|
f.write(generate_terminfo())
|
|
|
|
compile_terminfo(os.path.join(base, 'terminfo'))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
generate_terminfo()
|