infinipaint/linuxinstall/install-local.sh
copilot 1c1d63f376
Some checks are pending
Windows Release / windows-x86_64 (push) Waiting to run
Ship 0.8 fog/freistellen and fix Windows CI for friends
Publish the portable zip to public Forgejo from the private GitHub
builder, and force Ninja so MSVC 195 deps build without CMake 4.2.
2026-10-25 18:07:47 +01:00

35 lines
1.2 KiB
Bash

#!/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"
# 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
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