Files
chromebrew/packages/broadway.rb
2025-02-10 23:43:27 +00:00

86 lines
2.6 KiB
Ruby

require 'package'
require_relative 'gtk3'
class Broadway < Package
description 'Run GTK applications in a browser window.'
homepage 'https://docs.gtk.org/gtk3/broadway.html'
version Gtk3.version
license Gtk3.license
compatibility Gtk3.compatibility
source_url 'SKIP'
depends_on 'gtk3'
no_compile_needed
no_upstream_update
print_source_bashrc
def self.build
File.write 'broadway.env', <<~BROADWAYENVEOF
# Broadway environment variables + daemon
# See https://docs.gtk.org/gtk3/broadway.html.
GDK_BACKEND=broadway
XDG_RUNTIME_DIR=/var/run/chrome
BROADWAY_DISPLAY=:5
BROADWAYENVEOF
File.write '10-broadway', <<~BROADWAYEOF
#!/bin/bash
startbroadway
BROADWAYEOF
File.write 'startbroadway', <<~STARTBROADWAYEOF
#!/bin/bash
BROADWAYD=$(pidof broadwayd 2>/dev/null)
if [ -z "${BROADWAYD}" ]; then
[ -f #{CREW_PREFIX}/bin/stopsommelier ] && stopsommelier
broadwayd ${BROADWAY_DISPLAY} &
sleep 3
fi
BROADWAYD=$(pidof broadwayd 2>/dev/null)
if [ ! -z "${BROADWAYD}" ]; then
echo "broadwayd process ${BROADWAYD} is running"
else
echo "broadwayd failed to start"
exit 1
fi
STARTBROADWAYEOF
File.write 'stopbroadway', <<~STOPBROADWAYEOF
#!/bin/bash
BROADWAYD=$(pidof broadwayd 2>/dev/null)
if [ ! -z "${BROADWAYD}" ]; then
pkill broadwayd
sleep 3
fi
BROADWAYD=$(pidof broadwayd 2> /dev/null)
if [ -z "${BROADWAYD}" ]; then
echo "broadwayd process stopped"
else
echo "broadwayd process ${BROADWAYD} is running"
exit 1
fi
STOPBROADWAYEOF
end
def self.install
FileUtils.install 'startbroadway', "#{CREW_DEST_PREFIX}/bin/startbroadway", mode: 0o755
FileUtils.install 'stopbroadway', "#{CREW_DEST_PREFIX}/bin/stopbroadway", mode: 0o755
FileUtils.install '10-broadway', "#{CREW_DEST_PREFIX}/etc/bash.d/10-broadway", mode: 0o755
FileUtils.install 'broadway.env', "#{CREW_DEST_PREFIX}/etc/env.d/broadway.env", mode: 0o644
end
def self.postinstall
ExitMessage.add <<~EOM
Run 'startbroadway' to start the broadwayd daemon.
Run 'stopbroadway' to stop the broadwayd daemon.
To adjust environment variables, edit #{CREW_PREFIX}/etc/env.d/broadway.env.
Navigate your browser to http://127.0.0.1:8085 while the broadwayd
daemon is running to run GTK applications in the browser window.
Please be aware that gtk applications may not work without the broadwayd daemon running.
EOM
end
end