You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
| import { get as getFromConfig } from 'config';
 | |
| import { BrowserWindow } from 'electron';
 | |
| 
 | |
| import { start as startMacOS } from './macos';
 | |
| import { start as startWindows } from './windows';
 | |
| import {
 | |
|   deleteBaseTempDir,
 | |
|   getPrintableError,
 | |
|   LoggerType,
 | |
|   MessagesType,
 | |
| } from './common';
 | |
| 
 | |
| let initialized = false;
 | |
| 
 | |
| export async function start(
 | |
|   getMainWindow: () => BrowserWindow,
 | |
|   messages?: MessagesType,
 | |
|   logger?: LoggerType
 | |
| ) {
 | |
|   const { platform } = process;
 | |
| 
 | |
|   if (initialized) {
 | |
|     throw new Error('updater/start: Updates have already been initialized!');
 | |
|   }
 | |
|   initialized = true;
 | |
| 
 | |
|   if (!messages) {
 | |
|     throw new Error('updater/start: Must provide messages!');
 | |
|   }
 | |
|   if (!logger) {
 | |
|     throw new Error('updater/start: Must provide logger!');
 | |
|   }
 | |
| 
 | |
|   if (autoUpdateDisabled()) {
 | |
|     logger.info(
 | |
|       'updater/start: Updates disabled - not starting new version checks'
 | |
|     );
 | |
| 
 | |
|     return;
 | |
|   }
 | |
| 
 | |
|   try {
 | |
|     await deleteBaseTempDir();
 | |
|   } catch (error) {
 | |
|     logger.error(
 | |
|       'updater/start: Error deleting temp dir:',
 | |
|       getPrintableError(error)
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   if (platform === 'win32') {
 | |
|     await startWindows(getMainWindow, messages, logger);
 | |
|   } else if (platform === 'darwin') {
 | |
|     await startMacOS(getMainWindow, messages, logger);
 | |
|   } else {
 | |
|     throw new Error('updater/start: Unsupported platform');
 | |
|   }
 | |
| }
 | |
| 
 | |
| function autoUpdateDisabled() {
 | |
|   return (
 | |
|     process.platform === 'linux' ||
 | |
|     process.mas ||
 | |
|     !getFromConfig('updatesEnabled')
 | |
|   );
 | |
| }
 |