blob: 9b20f7b6e709b412157f28c919631b596d2ca2e9 (
plain)
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
|
#!/bin/sh
# ./gtk-broadway-run.sh PROGRAM ARGS...
# Starts PROGRAM under Gtk with the Broadway backend.
#
# This is meant as a more reliable replacement to xvfb-run
# when building SciTECO on headless systems.
# WARNING: This will block indefinitely when letting
# SciTECO (or any Gtk app) start up to its UI.
set -e
export GDK_BACKEND=broadway
# mktemp would create the file already
BROADWAY_SOCKET=/tmp/gtk-broadway.sock.$$
broadwayd --unixsocket $BROADWAY_SOCKET >/dev/null &
BROADWAY_PID=$!
trap "kill $BROADWAY_PID; rm -f $BROADWAY_SOCKET" EXIT
# Wait for broadway to start up.
# broadwayd might also die in the meantime.
while kill -0 $BROADWAY_PID >/dev/null && [ ! -S $BROADWAY_SOCKET ]; do
# `sleep 0.1` might be unportable.
sleep 0.1 || sleep 1
done
# We don't exec, so we can still clean up with the trap afterwards.
"$@"
|