preloader.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. const {ipcRenderer} = require('electron')
  2. const fs = require('fs-extra')
  3. const os = require('os')
  4. const path = require('path')
  5. const ConfigManager = require('./configmanager')
  6. const DistroManager = require('./distromanager')
  7. const logger = require('./loggerutil')('%c[Preloader]', 'color: #a02d2a; font-weight: bold')
  8. logger.log('Loading..')
  9. // Load ConfigManager
  10. ConfigManager.load()
  11. function onDistroLoad(data){
  12. if(data != null){
  13. // Resolve the selected server if its value has yet to be set.
  14. if(ConfigManager.getSelectedServer() == null || data.getServer(ConfigManager.getSelectedServer()) == null){
  15. logger.log('Determining default selected server..')
  16. ConfigManager.setSelectedServer(data.getMainServer().getID())
  17. ConfigManager.save()
  18. }
  19. }
  20. ipcRenderer.send('distributionIndexDone', data != null)
  21. }
  22. // Ensure Distribution is downloaded and cached.
  23. DistroManager.pullRemote().then((data) => {
  24. logger.log('Loaded distribution index.')
  25. onDistroLoad(data)
  26. }).catch((err) => {
  27. logger.log('Failed to load distribution index.')
  28. logger.error(err)
  29. logger.log('Attempting to load an older version of the distribution index.')
  30. // Try getting a local copy, better than nothing.
  31. DistroManager.pullLocal().then((data) => {
  32. logger.log('Successfully loaded an older version of the distribution index.')
  33. onDistroLoad(data)
  34. }).catch((err) => {
  35. logger.log('Failed to load an older version of the distribution index.')
  36. logger.log('Application cannot run.')
  37. logger.error(err)
  38. onDistroLoad(null)
  39. })
  40. })
  41. // Clean up temp dir incase previous launches ended unexpectedly.
  42. fs.remove(path.join(os.tmpdir(), ConfigManager.getTempNativeFolder()), (err) => {
  43. if(err){
  44. logger.warn('Error while cleaning natives directory', err)
  45. } else {
  46. logger.log('Cleaned natives directory.')
  47. }
  48. })