Package the portable DSH profiles, local plugins, desktop integration, Firefox wrapper, and ownership-aware installer lifecycle. Bundle checksum-pinned OpenVSCode, editor extensions, translation assets, and cloudflared so unreliable upstream artifact downloads cannot break a clean installation.
31 lines
868 B
Bash
Executable file
31 lines
868 B
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
url="${DSH_WEB_URL:-http://127.0.0.1:3080/}"
|
|
profile="${DSH_FIREFOX_PROFILE:-$HOME/.local/share/dsh-app-firefox}"
|
|
log="$profile/dsh-web.log"
|
|
mkdir -p "$profile"
|
|
|
|
kiosk=0
|
|
[[ "${1:-}" == "--kiosk" ]] && kiosk=1
|
|
|
|
if ! curl --fail --silent --output /dev/null "$url" 2>/dev/null; then
|
|
if systemctl --user cat dsh-web.service >/dev/null 2>&1; then
|
|
systemctl --user start dsh-web.service
|
|
else
|
|
nohup dsh web --no-open --port 3080 >"$log" 2>&1 &
|
|
fi
|
|
|
|
for _ in $(seq 1 60); do
|
|
curl --fail --silent --output /dev/null "$url" 2>/dev/null && break
|
|
sleep 1
|
|
done
|
|
fi
|
|
|
|
export MOZ_ENABLE_WAYLAND=1
|
|
unset GDK_BACKEND
|
|
arguments=(--no-remote --new-instance --profile "$profile" --name dsh-app)
|
|
if [[ "$kiosk" == 1 ]]; then
|
|
exec firefox "${arguments[@]}" --kiosk "$url"
|
|
fi
|
|
exec firefox "${arguments[@]}" --new-window "$url"
|