text: const electron = require('electron')
  const app = electron.app
  
  module.exports = {
    handleSquirrelEvent: function() {
      if (process.argv.length === 1) {
        return false
      }
  
      const ChildProcess = require('child_process')
      const path = require('path')
      const appFolder = path.resolve(process.execPath, '..')
      const rootAtomFolder = path.resolve(appFolder, '..')
      const updateDotExe = path.resolve(path.join(rootAtomFolder, 'Update.exe'))
      const exeName = path.basename(process.execPath)
  
      const spawn = function(command, args) {
        let spawnedProcess, error
  
        try {
          spawnedProcess = ChildProcess.spawn(command, args, {detached: true})
        } catch (error) {}
  
        return spawnedProcess
      }
  
      const spawnUpdate = function(args) {
        return spawn(updateDotExe, args)
      }
  
      const squirrelEvent = process.argv[1]
      switch (squirrelEvent) {
        case '--squirrel-install':
        case '--squirrel-updated':
          // Optionally do things such as:
          // - Add your .exe to the PATH
          // - Write to the registry for things like file associations and
          //   explorer context menus
  
          // Install desktop and start menu shortcuts
          spawnUpdate(['--createShortcut', exeName])
  
          setTimeout(app.quit, 1000)
          return true
  
        case '--squirrel-uninstall':
          // Undo anything you did in the --squirrel-install and
          // --squirrel-updated handlers
  
          // Remove desktop and start menu shortcuts
          spawnUpdate(['--removeShortcut', exeName])
  
          setTimeout(app.quit, 1000)
          return true
  
        case '--squirrel-obsolete':
          // This is called on the outgoing version of your app before
          // we update to the new version - it's the opposite of
          // --squirrel-updated
  
          app.quit()
          return true
      }
    }
  }