|
|
@@ -0,0 +1,32 @@
|
|
|
+var readline = require("readline"),
|
|
|
+ aggregate = require("./lib/");
|
|
|
+
|
|
|
+module.exports = function main() {
|
|
|
+ var args = process.argv.slice(2);
|
|
|
+ if (args.length === 0) console.error("USAGE:\n aggregate PIPELINE_JSON < INPUT_DOCS.jsonl"), process.exit(1);
|
|
|
+
|
|
|
+ var pipeline = [].concat.apply([], args.map(JSON.parse)),
|
|
|
+ inputs = [];
|
|
|
+
|
|
|
+ var rl = readline.createInterface({
|
|
|
+ input: process.stdin,
|
|
|
+ output: process.stdout,
|
|
|
+ terminal: false
|
|
|
+ })
|
|
|
+ .on("line", function(line){
|
|
|
+ try {
|
|
|
+ inputs.push(JSON.parse(line));
|
|
|
+ } catch (err) {
|
|
|
+ console.error("ERROR: Unable to parse line #" + inputs.length);
|
|
|
+ console.error("LINE: " + line);
|
|
|
+ throw err;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .on("close", function () {
|
|
|
+ var results = aggregate(pipeline, inputs);
|
|
|
+ results.forEach(function(result){
|
|
|
+ console.log(JSON.stringify(result));
|
|
|
+ });
|
|
|
+ process.exit(0);
|
|
|
+ });
|
|
|
+};
|