first pass at standardizing; suite still passing!
This commit is contained in:
parent
f25c3d33b6
commit
4794385fac
30 changed files with 1454 additions and 1462 deletions
|
@ -1,80 +1,79 @@
|
|||
'use strict';
|
||||
'use strict'
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const util = require('util');
|
||||
const Module = require('module');
|
||||
const v8 = require('v8');
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const util = require('util')
|
||||
const Module = require('module')
|
||||
const v8 = require('v8')
|
||||
|
||||
// We modified the original process.argv to let node.js load the atom.js,
|
||||
// we need to restore it here.
|
||||
process.argv.splice(1, 1);
|
||||
process.argv.splice(1, 1)
|
||||
|
||||
// Clear search paths.
|
||||
require('../common/reset-search-paths');
|
||||
require('../common/reset-search-paths')
|
||||
|
||||
// Import common settings.
|
||||
require('../common/init');
|
||||
require('../common/init')
|
||||
|
||||
var globalPaths = Module.globalPaths;
|
||||
var globalPaths = Module.globalPaths
|
||||
|
||||
if (!process.env.ELECTRON_HIDE_INTERNAL_MODULES) {
|
||||
globalPaths.push(path.join(__dirname, 'api'));
|
||||
globalPaths.push(path.join(__dirname, 'api'))
|
||||
}
|
||||
|
||||
// Expose public APIs.
|
||||
globalPaths.push(path.join(__dirname, 'api', 'exports'));
|
||||
globalPaths.push(path.join(__dirname, 'api', 'exports'))
|
||||
|
||||
if (process.platform === 'win32') {
|
||||
// Redirect node's console to use our own implementations, since node can not
|
||||
// handle console output when running as GUI program.
|
||||
var consoleLog = function(...args) {
|
||||
return process.log(util.format.apply(util, args) + "\n");
|
||||
};
|
||||
var streamWrite = function(chunk, encoding, callback) {
|
||||
var consoleLog = function (...args) {
|
||||
return process.log(util.format.apply(util, args) + '\n')
|
||||
}
|
||||
var streamWrite = function (chunk, encoding, callback) {
|
||||
if (Buffer.isBuffer(chunk)) {
|
||||
chunk = chunk.toString(encoding);
|
||||
chunk = chunk.toString(encoding)
|
||||
}
|
||||
process.log(chunk);
|
||||
process.log(chunk)
|
||||
if (callback) {
|
||||
callback();
|
||||
callback()
|
||||
}
|
||||
return true;
|
||||
};
|
||||
console.log = console.error = console.warn = consoleLog;
|
||||
process.stdout.write = process.stderr.write = streamWrite;
|
||||
return true
|
||||
}
|
||||
console.log = console.error = console.warn = consoleLog
|
||||
process.stdout.write = process.stderr.write = streamWrite
|
||||
|
||||
// Always returns EOF for stdin stream.
|
||||
var Readable = require('stream').Readable;
|
||||
var stdin = new Readable;
|
||||
stdin.push(null);
|
||||
process.__defineGetter__('stdin', function() {
|
||||
return stdin;
|
||||
});
|
||||
var Readable = require('stream').Readable
|
||||
var stdin = new Readable
|
||||
stdin.push(null)
|
||||
process.__defineGetter__('stdin', function () {
|
||||
return stdin
|
||||
})
|
||||
}
|
||||
|
||||
// Don't quit on fatal error.
|
||||
process.on('uncaughtException', function(error) {
|
||||
|
||||
process.on('uncaughtException', function (error) {
|
||||
// Do nothing if the user has a custom uncaught exception handler.
|
||||
var dialog, message, ref, stack;
|
||||
var dialog, message, ref, stack
|
||||
if (process.listeners('uncaughtException').length > 1) {
|
||||
return;
|
||||
return
|
||||
}
|
||||
|
||||
// Show error in GUI.
|
||||
dialog = require('electron').dialog;
|
||||
stack = (ref = error.stack) != null ? ref : error.name + ": " + error.message;
|
||||
message = "Uncaught Exception:\n" + stack;
|
||||
return dialog.showErrorBox('A JavaScript error occurred in the main process', message);
|
||||
});
|
||||
dialog = require('electron').dialog
|
||||
stack = (ref = error.stack) != null ? ref : error.name + ': ' + error.message
|
||||
message = 'Uncaught Exception:\n' + stack
|
||||
return dialog.showErrorBox('A JavaScript error occurred in the main process', message)
|
||||
})
|
||||
|
||||
// Emit 'exit' event on quit.
|
||||
var app = require('electron').app;
|
||||
var app = require('electron').app
|
||||
|
||||
app.on('quit', function(event, exitCode) {
|
||||
return process.emit('exit', exitCode);
|
||||
});
|
||||
app.on('quit', function (event, exitCode) {
|
||||
return process.emit('exit', exitCode)
|
||||
})
|
||||
|
||||
if (process.platform === 'win32') {
|
||||
// If we are a Squirrel.Windows-installed app, set app user model ID
|
||||
|
@ -94,92 +93,92 @@ if (process.platform === 'win32') {
|
|||
var updateDotExe = path.join(
|
||||
path.dirname(process.execPath),
|
||||
'..',
|
||||
'update.exe');
|
||||
'update.exe')
|
||||
|
||||
if (fs.statSyncNoException(updateDotExe)) {
|
||||
var packageDir = path.dirname(path.resolve(updateDotExe));
|
||||
var packageName = path.basename(packageDir);
|
||||
var exeName = path.basename(process.execPath).replace(/\.exe$/i, '');
|
||||
var packageDir = path.dirname(path.resolve(updateDotExe))
|
||||
var packageName = path.basename(packageDir)
|
||||
var exeName = path.basename(process.execPath).replace(/\.exe$/i, '')
|
||||
|
||||
app.setAppUserModelId(`com.squirrel.${packageName}.${exeName}`);
|
||||
app.setAppUserModelId(`com.squirrel.${packageName}.${exeName}`)
|
||||
}
|
||||
}
|
||||
|
||||
// Map process.exit to app.exit, which quits gracefully.
|
||||
process.exit = app.exit;
|
||||
process.exit = app.exit
|
||||
|
||||
// Load the RPC server.
|
||||
require('./rpc-server');
|
||||
require('./rpc-server')
|
||||
|
||||
// Load the guest view manager.
|
||||
require('./guest-view-manager');
|
||||
require('./guest-view-manager')
|
||||
|
||||
require('./guest-window-manager');
|
||||
require('./guest-window-manager')
|
||||
|
||||
// Now we try to load app's package.json.
|
||||
var packageJson = null;
|
||||
var searchPaths = ['app', 'app.asar', 'default_app'];
|
||||
var i, len, packagePath;
|
||||
var packageJson = null
|
||||
var searchPaths = ['app', 'app.asar', 'default_app']
|
||||
var i, len, packagePath
|
||||
for (i = 0, len = searchPaths.length; i < len; i++) {
|
||||
packagePath = searchPaths[i];
|
||||
packagePath = searchPaths[i]
|
||||
try {
|
||||
packagePath = path.join(process.resourcesPath, packagePath);
|
||||
packageJson = JSON.parse(fs.readFileSync(path.join(packagePath, 'package.json')));
|
||||
break;
|
||||
packagePath = path.join(process.resourcesPath, packagePath)
|
||||
packageJson = JSON.parse(fs.readFileSync(path.join(packagePath, 'package.json')))
|
||||
break
|
||||
} catch (error) {
|
||||
continue;
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if (packageJson == null) {
|
||||
process.nextTick(function() {
|
||||
return process.exit(1);
|
||||
});
|
||||
throw new Error("Unable to find a valid app");
|
||||
process.nextTick(function () {
|
||||
return process.exit(1)
|
||||
})
|
||||
throw new Error('Unable to find a valid app')
|
||||
}
|
||||
|
||||
// Set application's version.
|
||||
if (packageJson.version != null) {
|
||||
app.setVersion(packageJson.version);
|
||||
app.setVersion(packageJson.version)
|
||||
}
|
||||
|
||||
// Set application's name.
|
||||
if (packageJson.productName != null) {
|
||||
app.setName(packageJson.productName);
|
||||
app.setName(packageJson.productName)
|
||||
} else if (packageJson.name != null) {
|
||||
app.setName(packageJson.name);
|
||||
app.setName(packageJson.name)
|
||||
}
|
||||
|
||||
// Set application's desktop name.
|
||||
if (packageJson.desktopName != null) {
|
||||
app.setDesktopName(packageJson.desktopName);
|
||||
app.setDesktopName(packageJson.desktopName)
|
||||
} else {
|
||||
app.setDesktopName((app.getName()) + ".desktop");
|
||||
app.setDesktopName((app.getName()) + '.desktop')
|
||||
}
|
||||
|
||||
// Set v8 flags
|
||||
if (packageJson.v8Flags != null) {
|
||||
v8.setFlagsFromString(packageJson.v8Flags);
|
||||
v8.setFlagsFromString(packageJson.v8Flags)
|
||||
}
|
||||
|
||||
// Chrome 42 disables NPAPI plugins by default, reenable them here
|
||||
app.commandLine.appendSwitch('enable-npapi');
|
||||
app.commandLine.appendSwitch('enable-npapi')
|
||||
|
||||
// Set the user path according to application's name.
|
||||
app.setPath('userData', path.join(app.getPath('appData'), app.getName()));
|
||||
app.setPath('userData', path.join(app.getPath('appData'), app.getName()))
|
||||
|
||||
app.setPath('userCache', path.join(app.getPath('cache'), app.getName()));
|
||||
app.setPath('userCache', path.join(app.getPath('cache'), app.getName()))
|
||||
|
||||
app.setAppPath(packagePath);
|
||||
app.setAppPath(packagePath)
|
||||
|
||||
// Load the chrome extension support.
|
||||
require('./chrome-extension');
|
||||
require('./chrome-extension')
|
||||
|
||||
// Load internal desktop-capturer module.
|
||||
require('./desktop-capturer');
|
||||
require('./desktop-capturer')
|
||||
|
||||
// Set main startup script of the app.
|
||||
var mainStartupScript = packageJson.main || 'index.js';
|
||||
var mainStartupScript = packageJson.main || 'index.js'
|
||||
|
||||
// Finally load app's main.js and transfer control to C++.
|
||||
Module._load(path.join(packagePath, mainStartupScript), Module, true);
|
||||
Module._load(path.join(packagePath, mainStartupScript), Module, true)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue