UNPKG

silk-gui

Version:

GUI for developers and Node OS

88 lines (73 loc) 1.99 kB
var express = require('express'); var SockJS = require('sockjs'); var program = require('commander'); var configJson = require('../../config.json'); var logger = require('../console.js'); var apiData = require('../api_data.js'); var forkFramework = require(__root + '/core/fork_framework'); var app = express(); var server; var wss; var url; var toLoad = 2; var loaded = 0; function run() { var sockOptions = { sockjs_url: '//cdn.jsdelivr.net/sockjs/0.3.4/sockjs.min.js' }; var spinner = new logger.Spinner('Starting Silk'); spinner.start(); // hides spinner and shows url when finished loading; function loader() { loaded += 1; if (loaded === toLoad) { spinner.stop(); process.stdout.write('\r ' + url); console.log(''); } } // static files for client app.get(/^\/bc\//, require(__root + '/core/bower_static.js')); app.get('/api.js', require(__root + '/core/client_api.js')); server = app.listen(3000, function () { var address = server.address(); url = 'Silk at http://localhost:' + address.port; loader(); }); server.on('error', function (err) { if (err.code === 'EADDRINUSE') { console.log('Another process is using port 3000'); } else { console.trace(err); } process.exit(); }); if (!program.dev) { sockOptions.log = function (severity, message) { if (severity === 'error') { console.log(message); } }; } wss = SockJS.createServer(sockOptions); wss.installHandlers(server, { prefix: '/ws' }); forkFramework(app, wss, function () { loader(); }); forkFramework.startWindowManager(configJson.windowManager, app, function (e) { if (e) { console.log('error starting window manager'); console.log(e); } }); require('../remote.js'); if (program.remote) { apiData.get('remote/start')(true); } if (program.open) { require('../electron/open.js')(program.devtools); } } module.exports = run;