Compare commits

..

2 commits

Author SHA1 Message Date
8ecfade5c4 Restart Sommelier if it died 2023-07-18 19:03:41 -04:00
0baefc7edc initial itch.io image (no shortcut yet) 2023-07-18 18:59:28 -04:00
3 changed files with 35 additions and 1 deletions

12
apps/itchio/Containerfile Normal file
View file

@ -0,0 +1,12 @@
FROM dobu/deps-base-ubuntu-jammy:latest
RUN apt-get -y update && apt-get -y install libgtk-3-0 curl libnss3
COPY ./itch-wrapper.sh /usr/bin/itch-wrapper.sh
RUN curl -Lo /usr/bin/itch-setup 'https://itch.io/app/download?platform=linux' && \
chmod +x /usr/bin/itch-setup && chmod +x /usr/bin/itch-wrapper.sh
USER user
ENTRYPOINT [ "/usr/bin/itch-wrapper.sh" ]

View file

@ -0,0 +1,17 @@
#!/usr/bin/env bash
itch-setup --prefer-launch -- --no-sandbox
sleep 10
# Wait until the real itch.io process exits
# Because whoever designed the client thought it is a good idea to unconditionally daemonize
for pid in $(pgrep itch); do
ppid=$(ps -o ppid= -p $pid | xargs)
if [ "$ppid" == "1" ]; then
while [ -d /proc/$pid ]; do
sleep 1
done
fi
done

View file

@ -93,7 +93,12 @@ container_entrypoint() {
ensure_sommelier() {
assert_image_exists dobu/deps-sommelier
remove_stale_container dobu-deps-sommelier
container_exists dobu-deps-sommelier && return
if container_exists dobu-deps-sommelier; then
[ -S "$DOBU_TMP/X11-unix/X1" ] && [ -S "$DOBU_TMP/xdg_runtime/wayland-1" ] && return
log "Killing non-functional Sommelier container"
podman kill dobu-deps-sommelier
podman rm -f dobu-deps-sommelier
fi
rm -rf "$DOBU_TMP/xdg_runtime" || true
rm -rf "$DOBU_TMP/X11-unix" || true