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
JavaScript
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);
}
});
});
};