UNPKG

lx-scan

Version:

License eXtension to find 5-tuples of all installed packages: name, version, project home page, license (e. g. Apache v2, BSD) and required notice. It includes a GUI to edit information for each package and to enter information if necessary.

108 lines (76 loc) 2.64 kB
var express = require("express"); var app = express(); var server = require('http').Server(app); var settings = require('./settings'); var hbs = require('./lib/hbhelpers'); var io = require('socket.io')(server); var routes = require(settings.routerpath); var mware = require(settings.middlewarepath); var ioactions = require(settings.iopath); // Provide settings to all routes app.locals.lxusettings = settings; app.set("dirname",__dirname); // Create and clean temporary directory for license files, // as well as introduce some rudimentary ability to recover information in the // event of a crash require("fs").mkdir(settings.tmpdir,function (err) { if(err && err.code==="EEXIST") { var async = require("async"); var path = require("path"); var fs = require("fs"); fs.readdir(settings.tmpdir,function (err,files) { if(files.length===0) return; async.map(files,function (item,callback) { fs.stat(path.join(settings.tmpdir,item),function (err,stats) { if(err) { callback(err,null); return; } callback(null,{name: path.join(settings.tmpdir,item),stats:stats}); }); },function (err, statlist) { var sortedfiles = require("underscore").sortBy(statlist,function (file) { return -file.stats.mtime.getTime(); }); app.locals.jfiles[1] = sortedfiles[0].name; }); }); } }); // Start middleware (currently without mount points) mware(app); // Start websocket scripts ioactions(app,io,routes); app.set('view engine', 'html'); app.set('views', __dirname + "/lib/views"); app.engine('html', hbs.__express); app.locals.jfiles = {}; // Check for dev start if(!app.locals.jfiles[1]) app.locals.jfiles[1] = typeof process.argv[2]!=="undefined" ? process.argv[2] : ""; // Necessary for inactivity timer var server = server.listen(8888); app.locals.server = server; app.locals.timer = 0; // Routes app.all('*',routes.timer); app.get('/', routes.index.get); app.get('/terse',routes.terse.get); app.post('/upload', routes.upload.post); app.get('/open', routes.open.get); app.get('/browse', routes.browser.get); app.get('/scan', routes.scan.get); app.get('/log', routes.savelog.get); app.get('/save/options', routes.saveoptions.get); app.get('/save', routes.save.get); app.get('/save/report',routes.report.get); app.get('/displaylicense',routes.displicense.get); app.get('/close', function(req,res) { require("rimraf")(settings.tmpdir,function(){ res.send("GUI Closed"); server.close(); setTimeout(process.exit,3000); }); }); app.use("/resources",express.static(__dirname + "/lib/resources"))