46 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict'
 | |
| 
 | |
| const { app } = require('electron')
 | |
| const path = require('path')
 | |
| 
 | |
| const getTempDirectory = function () {
 | |
|   try {
 | |
|     return app.getPath('temp')
 | |
|   } catch {
 | |
|     // Delibrately laze-load the os module, this file is on the hot
 | |
|     // path when booting Electron and os takes between 5 - 8ms to load and we do not need it yet
 | |
|     return require('os').tmpdir()
 | |
|   }
 | |
| }
 | |
| 
 | |
| exports.crashReporterInit = function (options) {
 | |
|   const productName = options.productName || app.name
 | |
|   const crashesDirectory = path.join(getTempDirectory(), `${productName} Crashes`)
 | |
|   let crashServicePid
 | |
| 
 | |
|   if (process.platform === 'win32') {
 | |
|     const env = {
 | |
|       ELECTRON_INTERNAL_CRASH_SERVICE: 1
 | |
|     }
 | |
|     const args = [
 | |
|       '--reporter-url=' + options.submitURL,
 | |
|       '--application-name=' + productName,
 | |
|       '--crashes-directory=' + crashesDirectory,
 | |
|       '--v=1'
 | |
|     ]
 | |
| 
 | |
|     const crashServiceProcess = require('child_process').spawn(process.helperExecPath, args, {
 | |
|       env,
 | |
|       detached: true
 | |
|     })
 | |
| 
 | |
|     crashServicePid = crashServiceProcess.pid
 | |
|   }
 | |
| 
 | |
|   return {
 | |
|     productName,
 | |
|     crashesDirectory,
 | |
|     crashServicePid,
 | |
|     appVersion: app.getVersion()
 | |
|   }
 | |
| }
 | 
