3 source /a
/bin
/errhandle
/err
5 if [[ -s ~
/.bashrc
]]; then . ~
/.bashrc
; fi
12 # https://sw.kovidgoyal.net/kitty/build/
30 last_build
=/a
/opt
/kitty-build-info
/last-build
32 rev=$
(cat $last_build 2>/dev
/null
) ||
:
33 head=$
(sudo
-u zu git rev-parse HEAD
)
34 if ! $recompile && ! $bootstrap && [[ $rev == "$head" ]]; then
39 # built it on one machine, the others it dies with the error illegal
40 # instruction. building is pretty quick, so just detect if our version
41 # works, and if not, rebuild and install.
42 # I had an idea to test the failure like so:
43 # timeout 5 kitty /bin/true, but that doesn't work over ssh
44 if ! $rebuild && ! /bin
/true
; then
49 if mountpoint
-q /usr
/local
/src
/kitty
; then
50 s umount
/usr
/local
/src
/kitty
55 s mkdir
-p /usr
/local
/src
/kitty
56 s mount
-o bind /a
/opt
/kitty
/usr
/local
/src
/kitty
58 s
install -o zu
-g zu
-d /usr
/local
/src
/kitty
59 s chown
-hR zu.zu
/usr
/local
/src
/kitty
60 cd /usr
/local
/src
/kitty
62 p
=PATH
=/usr
/local
/sbin
:/usr
/local
/bin
:/usr
/sbin
:/usr
/bin
:/sbin
:/bin
:/snap
/bin
:/usr
/local
/go
/bin
63 gp
=/usr
/local
/src
/kitty
/go
64 m sudo
-u zu bash
-c 'PATH=$PATH:/usr/local/go/bin; export GOPATH=/usr/local/src/kitty/go; go mod download -x'
65 m sudo
-u zu firejail
--read-write=/usr
/local
/src
/kitty
--profile=makekitty env PATH
=$p make clean
66 m sudo
-u zu firejail
--read-write=/usr
/local
/src
/kitty
--profile=makekitty env PATH
=$p GOPATH
=$gp make
68 s umount
/usr
/local
/src
/kitty
69 s chown
-hR iank.iank
/a
/opt
/kitty
73 s rsync
-ar --chown root
:root
--delete __main__.py kitty logo kittens
/usr
/local
/src
/kitty
74 s rsync
-ar --chown root
:root .
/terminfo
/x
/xterm-kitty
/usr
/share
/terminfo
/x
/xterm-kitty
75 s
ln -sf -T /usr
/local
/src
/kitty
/kitty
/launcher
/kitty
/usr
/local
/bin
/kitty
77 echo $head >$last_build