function getProcessArgvBinIndex () { // The binary name is the first command line argument for: // - bundled Electron apps: bin argv1 argv2 ... argvn if (isBundledElectronApp()) return 0 // or the second one (default) for: // - standard node apps: node bin.js argv1 argv2 ... argvn // - unbundled Electron apps: electron bin.js argv1 arg2 ... argvn return 1 } function isBundledElectronApp () { // process.defaultApp is either set by electron in an electron unbundled app, or undefined // see https://github.com/electron/electron/blob/master/docs/api/process.md#processdefaultapp-readonly return isElectronApp() && !process.defaultApp } function isElectronApp () { // process.versions.electron is either set by electron, or undefined // see https://github.com/electron/electron/blob/master/docs/api/process.md#processversionselectron-readonly return !!process.versions.electron } function getProcessArgvWithoutBin () { return process.argv.slice(getProcessArgvBinIndex() + 1) } function getProcessArgvBin () { return process.argv[getProcessArgvBinIndex()] } module.exports = { getProcessArgvBin, getProcessArgvWithoutBin }