diff --git a/package.json b/package.json index a440f1d5d..c33fa4e28 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "chalk": "^1.1.3", "command-line-args": "^5.0.2", "command-line-usage": "^5.0.4", + "csv-stringify": "^3.0.0", "cucumber": "^1.2.1", "d3-queue": "^2.0.3", "docbox": "^1.0.6", diff --git a/scripts/osrm-runner.js b/scripts/osrm-runner.js index 7f22d0576..28179e367 100755 --- a/scripts/osrm-runner.js +++ b/scripts/osrm-runner.js @@ -10,6 +10,7 @@ const clu = require('command-line-usage'); const ansi = require('ansi-escape-sequences'); const turf = require('turf'); const jp = require('jsonpath'); +const csv_stringify = require('csv-stringify/lib/sync'); const run_query = (query_options, filters, callback) => { let tic = () => 0.; @@ -123,11 +124,8 @@ queries = queries.map(q => { return {hostname: options.server.hostname, port: op http.globalAgent.maxSockets = options['max-sockets']; queries.map(query => { run_query(query, options.filter, (query, code, ttfb, total, results) => { - let str = `"${query}",${code}`; - if (ttfb !== undefined) str += `,${ttfb}`; - if (total !== undefined) str += `,${total}`; - if (typeof results === 'object' && results.length > 0) - str += ',' + results.map(x => isNaN(x) ? '"' + JSON.stringify(x).replace(/\n/g, ';').replace(/"/g, "'") + '"' : Number(x)).join(','); - console.log(str); + let data = results ? JSON.stringify(results[0]) : ''; + let record = [[query, code, ttfb, total, data]]; + process.stdout.write(csv_stringify(record)); }); });