UNPKG

roar-agent

Version:

The Node.js Roar Agent that listens for and executes scan jobs

43 lines (38 loc) 1.82 kB
var david = require('david'); var exec = require('child_process').exec; var fs = require('fs'); david.getUpdatedDependencies(require('./package.json'), { dev: false, stable: true }, function(err, list) { var count1 = Object.keys(list).length; var badge = 'https://img.shields.io/badge/dependencies-up--to--date-brightgreen.svg'; if (count1 > 0) { badge = 'https://img.shields.io/badge/dependencies-' + count1 + '%20out%20of%20date-brightgreen.svg'; } david.getUpdatedDependencies(require('./package.json'), { dev: true, stable: true }, function(err, list) { var count2 = Object.keys(list).length; var devBadge = 'https://img.shields.io/badge/dev--dependencies-up--to--date-brightgreen.svg'; if (count1 > 0) { devBadge = 'https://img.shields.io/badge/dev--dependencies-' + count1 + '%20out%20of%20date-brightgreen.svg'; } exec('nsp check --output json', function(error, stdout, stderr) { var t = stderr.replace(/(?:\r\n|\r|\n)/g, ''); try { var output = JSON.parse(t); var vulns = 'https://img.shields.io/badge/vulnerabilities-' + output.length + '%20found-red.svg'; } catch (err) { var vulns = 'https://img.shields.io/badge/vulnerabilities-None-brightgreen.svg'; } // Update the README var data = fs.readFileSync('./README.md', 'utf-8').toString(); data = data.replace(/(\[\!\[Dependencies\]\()(.*)(\)\].*\))/, '$1' + badge + '$3'); data = data.replace(/(\[\!\[Dev Dependencies\]\()(.*)(\)\].*\))/, '$1' + devBadge + '$3'); data = data.replace(/(\[\!\[Vulnerabilities\]\()(.*)(\)\].*\))/, '$1' + vulns + '$3'); fs.writeFileSync('./README.md', data, 'utf-8'); }); } ) } )