SurfSense/surfsense_desktop/scripts/electron-dev.mjs

24 lines
973 B
JavaScript

/**
* Linux dev: (1) ELECTRON_DISABLE_SANDBOX before start — setuid chrome-sandbox in node_modules.
* (2) --ozone-platform=x11 — use X11 via XWayland so global shortcuts / GPU warnings match many
* Linux Electron setups better than native Wayland. Set SURFSENSE_ELECTRON_WAYLAND=1 to skip (2).
* Packaged apps are not launched through this script.
*/
import { spawnSync } from 'child_process';
import { dirname, join } from 'path';
import { fileURLToPath } from 'url';
const root = join(dirname(fileURLToPath(import.meta.url)), '..');
const cli = join(root, 'node_modules', 'electron', 'cli.js');
const env = { ...process.env };
const args = [cli, '.'];
if (process.platform === 'linux') {
env.ELECTRON_DISABLE_SANDBOX = '1';
if (env.SURFSENSE_ELECTRON_WAYLAND !== '1') {
args.push('--ozone-platform=x11');
}
}
const r = spawnSync(process.execPath, args, { cwd: root, env, stdio: 'inherit' });
process.exit(r.status === null ? 1 : r.status ?? 0);