Comparing version 0.0.2 to 0.0.3
@@ -12,7 +12,10 @@ #!/usr/bin/env node | ||
var fs = require('fs'); | ||
var path = require('path'); | ||
var amass = require('../'); | ||
var getopt = require('posix-getopt'); | ||
var package = require('../package.json'); | ||
var pluginsdir = '/var/amass/node_modules'; | ||
@@ -43,3 +46,2 @@ /** | ||
var parser = new getopt.BasicParser(options, process.argv); | ||
var option; | ||
@@ -60,8 +62,17 @@ while ((option = parser.getopt()) !== undefined) { | ||
amass(function(errors, data) { | ||
// try to load the plugin | ||
var plugins; | ||
try { | ||
var pluginnames = fs.readdirSync(pluginsdir); | ||
plugins = pluginnames.map(function(name) { | ||
return path.join(pluginsdir, name); | ||
}); | ||
} catch (e) {} | ||
// amass! | ||
amass(plugins, function(errors, data) { | ||
if (errors) errors.forEach(function(err) { | ||
console.error(err); | ||
}); | ||
data.amass = package.version; | ||
console.log(JSON.stringify(data, null, 2)); | ||
}); |
28
index.js
@@ -11,2 +11,5 @@ /** | ||
var path = require('path'); | ||
var package = require('./package.json'); | ||
var modules = { | ||
@@ -19,6 +22,21 @@ os: require('./lib/os'), | ||
function amass(cb) { | ||
function amass(plugins, cb) { | ||
if (typeof plugins === 'function') { | ||
cb = plugins; | ||
plugins = null; | ||
} | ||
var data = {}; | ||
var errors = []; | ||
data.amass = { | ||
version: package.version, | ||
plugins: plugins | ||
}; | ||
// try to load the plugins | ||
if (plugins) { | ||
plugins.forEach(function(plugin) { | ||
modules[path.basename(plugin).replace(/^amass-/, '')] = require(plugin); | ||
}); | ||
} | ||
var keys = Object.keys(modules); | ||
@@ -31,4 +49,7 @@ var len = keys.length; | ||
modules[mod](function(err, d) { | ||
if (err) return errors.push(err); | ||
data[mod] = d; | ||
if (err) { | ||
errors.push(err); | ||
} else { | ||
data[mod] = d; | ||
} | ||
if (++i === len) done(); | ||
@@ -43,1 +64,2 @@ }); | ||
} | ||
@@ -5,3 +5,3 @@ { | ||
"author": "Dave Eddy <dave@daveeddy.com> (http://www.daveeddy.com)", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"bin": { | ||
@@ -8,0 +8,0 @@ "amass": "./bin/amass.js" |
@@ -69,2 +69,11 @@ amass | ||
Plugins | ||
------- | ||
*still in beta* | ||
All plugins will be stored in `/var/amass`. The idea is that plugins should be standalone | ||
node modules that expose useful system information, and as such, be installed in node_modules | ||
in `/var/amass`. | ||
License | ||
@@ -71,0 +80,0 @@ ------- |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5501
7
140
82
3