@dbp-topics/greenlight
Version:
[GitHub Repository](https://github.com/digital-blueprint/greenlight-frontend) | [npmjs package](https://www.npmjs.com/package/@dbp-topics/greenlight) | [Unpkg CDN](https://unpkg.com/browse/@dbp-topics/greenlight/) | [Greenlight Bundle](https://gitlab.tugr
97 lines (81 loc) • 2.12 kB
JavaScript
/**
* greenlight-bench
* Benchmarking for DBP Greenlight
*
* @author Patrizio Bekerle <patrizio.bekerle@tugraz.at>
*/
const init = require('./utils/init');
const cli = require('./utils/cli');
const log = require('./utils/log');
const crypto = require('./crypto.js');
const process = require('process');
const fs = require('fs');
const { execFile } = require('child_process');
const tmp = require('tmp');
const input = cli.input;
const flags = cli.flags;
const { clear, debug, token, requests, concurrency, verbose } = flags;
let { apiUrl } = flags;
(async () => {
init({ clear });
input.includes(`help`) && cli.showHelp(0);
// if (token === '') {
// console.error('You need to add a token with the --token parameter.');
// process.exit(1);
// }
let url = '';
let parameters = [
'-n',
requests,
'-c',
concurrency,
'-H',
'Authorization: Bearer ' + token,
'-H',
'accept: application/ld+json',
'-T',
'application/json'
];
if (verbose) {
parameters = parameters.concat(['-v', '4']);
}
// remove trailing slash
apiUrl = apiUrl.replace(/\/$/, '');
if (input.includes(`permit-post`)) {
const additionalInformation = await crypto.encodeAdditionalInformation(
token,
'local-proof'
);
const data =
'{"consentAssurance": true, "additionalInformation": "' +
additionalInformation +
'"}';
const dataFile = tmp.fileSync();
let buffer = new Buffer.from(data);
fs.write(dataFile.fd, buffer, 0, buffer.length, null, function (err) {
if (err) {
console.error('Cant write to data file!');
process.exit(1);
}
});
url = apiUrl + '/greenlight/permits';
parameters = parameters.concat(['-p', dataFile.name]);
} else if (input.includes(`permit-get`)) {
url = apiUrl + '/greenlight/permits';
}
if (url === '') {
console.error(
'You need to choose a valid test [permit-post, permit-get].'
);
process.exit(1);
}
parameters = parameters.concat([url]);
execFile('ab', parameters, (error, stdout, stderr) => {
if (error) {
throw error;
}
console.log(stdout);
});
debug && log(flags);
})();