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.

46 lines (40 loc) 1.41 kB
var lxu = require("lxutils"); var fs = require("fs"); var pa = require("path"); var errorrender = function(req,res,old_json_file) { var newpath = req.app.locals.jfiles[old_json_file]; var errortext = ["The indicated file could not be read."]; if(newpath==="") { res.render("index",{title:"LX Viewer",jfile:old_json_file,caller:"/",err:errortext}); } else { lxu.jRender(newpath,"index",{title:"LX Viewer",jfile:old_json_file,caller:"/",err:errortext},res); } }; module.exports.get = function(req,res) { var newpath = req.query.path; var old_json_file = req.query.jfile; var settings = req.app.locals.lxusettings; fs.readFile(newpath,function(err,data) { if(err) { // Render the old file if something went wrong errorrender(req,res,old_json_file); return; } var newfilename = lxu.make_random_filename(settings.tmpdir,newpath,"json"); fs.writeFile(newfilename,data,function(err) { if(err) { // If we get to this point there's nothing we can reasonably do; a missing or bad file name has been entered into // the file table throw err; return; } req.app.locals.jfiles[lxu.hash(newfilename)] = newfilename; try { lxu.jRender(newfilename,"index",{title:"LX Viewer",jfile:lxu.hash(newfilename),caller:"/",path:newpath},res); } catch (e) { fs.unlink(newfilename); errorrender(req,res,old_json_file); } }); }); };