snyk-mvn-plugin
Advanced tools
Comparing version 1.2.0 to 1.2.1
@@ -15,29 +15,28 @@ var parse = require('./parse-mvn'); | ||
function inspect(root, targetFile, options) { | ||
if (!options) { options = { dev: false }; } | ||
return subProcess.execute( | ||
'mvn', | ||
buildArgs(root, targetFile, options.args), | ||
{ cwd: root } | ||
) | ||
.then(function (result) { | ||
var parseResult = {}; | ||
try { | ||
parseResult = parse(result, options.dev); | ||
} catch (error) { | ||
console.log('\nAn unknown error occurred. ' + | ||
'Please include the trace below when reporting to Snyk:', error, '\n'); | ||
return Promise.reject(''); | ||
} | ||
if (parseResult.ok) { | ||
return { | ||
plugin: { | ||
name: 'bundled:maven', | ||
runtime: 'unknown', | ||
}, | ||
package: parseResult.data, | ||
}; | ||
} | ||
return Promise.reject(parseResult.message || | ||
'An internal error has occured. Please contact Snyk for support.'); | ||
}); | ||
if (!options) { | ||
options = {dev: false}; | ||
} | ||
var mvnArgs = buildArgs(root, targetFile, options.args); | ||
return subProcess.execute('mvn', mvnArgs, {cwd: root}) | ||
.then(function (result) { | ||
try { | ||
var parseResult = parse(result, options.dev); | ||
return { | ||
plugin: { | ||
name: 'bundled:maven', | ||
runtime: 'unknown', | ||
}, | ||
package: parseResult.data, | ||
}; | ||
} catch (error) { | ||
error.message = error.message + '\n\n' + | ||
'Please make sure that Apache Maven Dependency Plugin ' + | ||
'version 2.2 or above is installed, and that ' + | ||
'`mvn ' + mvnArgs.join(' ') + '` executes successfully ' + | ||
'on this project.\n\n' + | ||
'If the problem persists, collect the output of ' + | ||
'`mvn ' + mvnArgs.join(' ') + '` and contact support@snyk.io\n'; | ||
throw error; | ||
} | ||
}); | ||
} | ||
@@ -44,0 +43,0 @@ |
@@ -7,18 +7,18 @@ module.exports = parseTree; | ||
var digraph = /digraph([\s\S]*?)\}/g; | ||
var errorLabel = /^\[ERROR\]/gm; | ||
// Parse the output from 'mvn dependency:tree -DoutputType=dot' | ||
function parseTree(text, withDev) { | ||
// check for errors in mvn output | ||
if (errorLabel.test(text)) { | ||
throw new Error('Failed to execute an `mvn` command.'); | ||
} | ||
// clear all labels | ||
text = text.replace(logLabel, ''); | ||
try { | ||
return { | ||
ok: true, | ||
data: getRootProject(text, withDev), | ||
}; | ||
} catch (error) { | ||
return { | ||
ok: false, | ||
message: error.message, | ||
error: error, | ||
}; | ||
} | ||
// extract deps | ||
var data = getRootProject(text, withDev); | ||
return {ok: true, data: data}; | ||
} | ||
@@ -29,5 +29,3 @@ | ||
if (!projects) { | ||
throw new Error('Error: Cannot find dependency information. ' + | ||
'Please make sure that Apache Maven Dependency Plugin ' + | ||
'version 2.2 or above is installed.'); | ||
throw new Error('Cannot find dependency information.'); | ||
} | ||
@@ -80,3 +78,3 @@ var root = getProject(projects[0], null, withDev); | ||
function createPackage(pkgStr, parent) { | ||
function createPackage(pkgStr) { | ||
var range = getConstraint(pkgStr); | ||
@@ -107,4 +105,2 @@ | ||
var selfPkg = result.groupId + ':' + result.artifactId + '@' + result.version; | ||
return result; | ||
@@ -111,0 +107,0 @@ } |
var childProcess = require('child_process'); | ||
module.exports.execute = function (command, args, options) { | ||
var spawnOptions = { shell: true }; | ||
var spawnOptions = {shell: true}; | ||
if (options && options.cwd) { | ||
@@ -14,4 +14,8 @@ spawnOptions.cwd = options.cwd; | ||
var proc = childProcess.spawn(command, args, spawnOptions); | ||
proc.stdout.on('data', function (data) { stdout = stdout + data; }); | ||
proc.stderr.on('data', function (data) { stderr = stderr + data; }); | ||
proc.stdout.on('data', function (data) { | ||
stdout = stdout + data; | ||
}); | ||
proc.stderr.on('data', function (data) { | ||
stderr = stderr + data; | ||
}); | ||
@@ -18,0 +22,0 @@ proc.on('close', function (code) { |
@@ -11,7 +11,7 @@ { | ||
"scripts": { | ||
"test": "npm run lint && npm run test-functional", | ||
"lint": "jscs `find ./lib -name '*.js'` -v && jscs `find ./test -name '*.js'` -v", | ||
"test-functional": "tap `find ./test/functional -name '*.test.js'`", | ||
"test-system": "tap `find ./test/system -name '*.test.js'`", | ||
"semantic-release": "semantic-release pre && npm publish && semantic-release post" | ||
"lint": "eslint -c .eslintrc lib test", | ||
"test": "npm run lint && npm run test-functional && npm run test-system", | ||
"test-functional": "tap ./test/functional/*.test.js -R spec", | ||
"test-system": "tap ./test/system/*.test.js -R spec --timeout=60", | ||
"semantic-release": "semantic-release" | ||
}, | ||
@@ -21,8 +21,8 @@ "author": "snyk.io", | ||
"devDependencies": { | ||
"jscs": "^3.0.7", | ||
"semantic-release": "^6.3.6", | ||
"tap": "^10.3.2", | ||
"eslint": "^4.11.0", | ||
"semantic-release": "^15", | ||
"tap": "^12.0.1", | ||
"tap-only": "0.0.5" | ||
}, | ||
"version": "1.2.0" | ||
} | ||
"version": "1.2.1" | ||
} |
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
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
13740
10
175