#!/bin/sh
# Lançador do PartyCall (deb, rpm e tar.gz). É este arquivo que o menu e o
# partycall:// chamam: o caminho dele é estável, o da versão do runtime muda.
#
# - Com runtime instalado: abre ~/.local/share/partycall/atual/partycall.
# - Sem runtime (primeira vez, ou clicou num partycall:// antes de instalar):
#   chama o assistente, que instala e depois abre com os mesmos argumentos.
#
# Sandbox do Chromium: o runtime mora na pasta do usuário, sem SUID, então o
# sandbox é o de user namespace. O Ubuntu 23.10+ o bloqueia por AppArmor para
# programa fora do sistema, e o Electron morre na abertura. Só nesse caso vai
# --no-sandbox (a janela só abre o servidor do PartyCall). Onde o namespace
# funciona, o sandbox fica ligado.
AQUI="$(dirname "$(readlink -f "$0")")"
DADOS="${XDG_DATA_HOME:-$HOME/.local/share}/partycall"
ATUAL="$DADOS/atual"

if [ -x "$ATUAL/partycall" ]; then
	EXTRA=""
	SANDBOX="ligado"
	if ! command -v unshare >/dev/null 2>&1 || ! unshare -Ur true 2>/dev/null; then
		EXTRA="--no-sandbox"
		SANDBOX="desligado (user namespace bloqueado neste sistema)"
	fi
	[ -t 2 ] && echo "partycall: sandbox $SANDBOX" >&2
	export PARTYCALL_MODO=assistente
	export PARTYCALL_ASSISTENTE="$AQUI/partycall-setup"
	export PARTYCALL_LANCADOR="$AQUI/partycall"
	export PARTYCALL_SANDBOX="$SANDBOX"
	exec "$ATUAL/partycall" $EXTRA "$@"
fi
exec "$AQUI/partycall-setup" --abrir-depois "$@"
