text: var fs = require('fs')
  var path = require('path')
  
  var pathFile = path.join(__dirname, 'path.txt')
  
  function getElectronPath () {
    if (fs.existsSync(pathFile)) {
      var executablePath = fs.readFileSync(pathFile, 'utf-8')
      if (process.env.ELECTRON_OVERRIDE_DIST_PATH) {
        return path.join(process.env.ELECTRON_OVERRIDE_DIST_PATH, executablePath)
      }
      return path.join(__dirname, 'dist', executablePath)
    } else {
      throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again')
    }
  }
  
  // A list of the main modules the people will attempt to use from the Electron API, this is not a complete list but should cover most
  // use cases.
  var electronModuleNames = ['app', 'autoUpdater', 'BrowserWindow', 'ipcMain', 'Menu', 'net', 'Notification', 'systemPreferences', 'Tray']
  var electronPath = new String(getElectronPath())
  
  electronModuleNames.forEach(function warnOnElectronAPIAccess (apiKey) {
    Object.defineProperty(electronPath, apiKey, {
      enumerable: false,
      configurable: false,
      get: function getElectronAPI () {
        console.warn('WARNING: You are attempting to access an Electron API from a node environment.\n\n' +
        'You need to use the "electron" command to run your app. E.g. "npx electron ./myapp.js"')
      }
    })
  })
  
  module.exports = electronPath
  