2026-10-04 20:18:33 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
# Install a built InfiniPaint binary from this repo into ~/.local
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
|
|
|
BIN="${1:-$ROOT/build/Release/infinipaint}"
|
|
|
|
|
PREFIX="${HOME}/.local"
|
|
|
|
|
APPDIR="${PREFIX}/share/infinipaint"
|
|
|
|
|
|
|
|
|
|
[[ -x "$BIN" ]] || { echo "missing binary: $BIN" >&2; exit 1; }
|
|
|
|
|
|
|
|
|
|
mkdir -p "$APPDIR" "${PREFIX}/bin" "${PREFIX}/share/applications"
|
|
|
|
|
install -m755 "$BIN" "${APPDIR}/infinipaint"
|
|
|
|
|
rm -rf "${APPDIR}/data"
|
|
|
|
|
cp -a "${ROOT}/assets/data" "${APPDIR}/data"
|
|
|
|
|
ln -sfn "${APPDIR}/infinipaint" "${PREFIX}/bin/infinipaint"
|
|
|
|
|
|
2026-10-25 18:07:47 +01:00
|
|
|
# Optional rembg next to the app (silueta / bria). Missing = greyed-out modes in Settings.
|
|
|
|
|
if [[ -x "${ROOT}/linuxinstall/bundle-rembg.sh" ]]; then
|
|
|
|
|
bash "${ROOT}/linuxinstall/bundle-rembg.sh" "$APPDIR" || true
|
|
|
|
|
fi
|
|
|
|
|
|
2026-10-04 20:18:33 +02:00
|
|
|
cat > "${PREFIX}/share/applications/com.infinipaint.infinipaint-fork.desktop" <<EOF
|
|
|
|
|
[Desktop Entry]
|
|
|
|
|
Name=InfiniPaint (fork)
|
|
|
|
|
Comment=Infinite collaborative canvas (copilot fork)
|
|
|
|
|
Exec=${PREFIX}/bin/infinipaint
|
|
|
|
|
Icon=com.infinipaint.infinipaint
|
|
|
|
|
Terminal=false
|
|
|
|
|
Type=Application
|
|
|
|
|
Categories=Graphics;
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
echo "Installed: ${PREFIX}/bin/infinipaint"
|
|
|
|
|
# GUI binary may abort without a working GL context; do not fail install.
|
|
|
|
|
"${PREFIX}/bin/infinipaint" --version >/dev/null 2>&1 || true
|