diff --git a/package.json b/package.json index 649d1aa..f18daa0 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "main": ".vite/build/main.js", "repository": "stoatchat/desktop", "scripts": { - "start": "electron-forge start", + "start": "./start.sh", + "start:forge": "electron-forge start", "package": "electron-forge package", "make": "electron-forge make", "publish": "electron-forge publish", diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..ea47c14 --- /dev/null +++ b/start.sh @@ -0,0 +1,25 @@ +I d#!/usr/bin/env bash + +# Check if we're on NixOS and set up electron path if needed +if [ -f /etc/NIXOS ] || [ -n "$NIX_STORE" ]; then + # We're on NixOS, need to find the electron path + if command -v electron &> /dev/null; then + # Electron is in PATH, find its store path + ELECTRON_BIN=$(which electron) + ELECTRON_STORE_PATH=$(dirname "$ELECTRON_BIN") + export ELECTRON_OVERRIDE_DIST_PATH="$ELECTRON_STORE_PATH" + echo "NixOS detected: Using electron from $ELECTRON_STORE_PATH" + elif [ -d /nix/store ]; then + # Try to find electron in nix store matching our version requirement + REQUIRED_VERSION=$(grep '"electron"' package.json | sed -E 's/.*"([0-9]+)\..*/\1/') + ELECTRON_PATH=$(find /nix/store -maxdepth 1 -name "*electron-${REQUIRED_VERSION}*" -type d 2>/dev/null | grep -v unwrapped | head -1) + + if [ -n "$ELECTRON_PATH" ] && [ -d "$ELECTRON_PATH/bin" ]; then + export ELECTRON_OVERRIDE_DIST_PATH="$ELECTRON_PATH/bin" + echo "NixOS detected: Using electron from $ELECTRON_PATH/bin" + fi + fi +fi + +# Run electron-forge directly to avoid recursion +exec npx electron-forge start "$@" \ No newline at end of file