| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- const {ipcRenderer} = require('electron')
- const fs = require('fs-extra')
- const os = require('os')
- const path = require('path')
- const ConfigManager = require('./configmanager')
- const DistroManager = require('./distromanager')
- const logger = require('./loggerutil')('%c[Preloader]', 'color: #a02d2a; font-weight: bold')
- logger.log('Loading..')
- // Load ConfigManager
- ConfigManager.load()
- function onDistroLoad(data){
- if(data != null){
-
- // Resolve the selected server if its value has yet to be set.
- if(ConfigManager.getSelectedServer() == null || data.getServer(ConfigManager.getSelectedServer()) == null){
- logger.log('Determining default selected server..')
- ConfigManager.setSelectedServer(data.getMainServer().getID())
- ConfigManager.save()
- }
- }
- ipcRenderer.send('distributionIndexDone', data != null)
- }
- // Ensure Distribution is downloaded and cached.
- DistroManager.pullRemote().then((data) => {
- logger.log('Loaded distribution index.')
- onDistroLoad(data)
- }).catch((err) => {
- logger.log('Failed to load distribution index.')
- logger.error(err)
- logger.log('Attempting to load an older version of the distribution index.')
- // Try getting a local copy, better than nothing.
- DistroManager.pullLocal().then((data) => {
- logger.log('Successfully loaded an older version of the distribution index.')
- onDistroLoad(data)
- }).catch((err) => {
- logger.log('Failed to load an older version of the distribution index.')
- logger.log('Application cannot run.')
- logger.error(err)
- onDistroLoad(null)
- })
- })
- // Clean up temp dir incase previous launches ended unexpectedly.
- fs.remove(path.join(os.tmpdir(), ConfigManager.getTempNativeFolder()), (err) => {
- if(err){
- logger.warn('Error while cleaning natives directory', err)
- } else {
- logger.log('Cleaned natives directory.')
- }
- })
|