|
#!/usr/bin/env node |
|
|
|
var async = require('async'); |
|
var fs = require('fs') |
|
var lo = require('lodash'); |
|
var open = require('json-file-plus') |
|
var path = require('path') |
|
var util = require('util') |
|
|
|
if (process.argv.length < 4) { |
|
console.error('usage: %s OUTPUT INPUT...', process.argv[1]); |
|
process.exit(1); |
|
} |
|
|
|
function readFileSync(name) { |
|
return fs.readFileSync(name,{encoding: 'utf8'}) |
|
} |
|
|
|
var output = process.argv[2]; |
|
|
|
open(output, function (err, json) { |
|
if(err) { |
|
console.error('open %s failed: %s', output, err) |
|
process.exit(1) |
|
} |
|
|
|
var keywords = json.get('keywords') || []; |
|
|
|
var inputs = process.argv.slice(3); |
|
|
|
console.log('inputs:', inputs); |
|
console.log('output:', output); |
|
|
|
async.map(inputs, function(input, callback) { |
|
open(input, function(err, json) { |
|
if (err) return callback(err); |
|
return callback(null, json.get('keywords') || []); |
|
}); |
|
}, function(err, outputs) { |
|
if(err) { |
|
console.error('open %s failed: %s', input, err) |
|
process.exit(1) |
|
} |
|
|
|
keywords = lo.flatten([keywords, outputs]); |
|
keywords = lo.uniq(keywords.sort()); |
|
|
|
console.log('keywords:', keywords); |
|
|
|
json.set({keywords: keywords}); |
|
|
|
json.save(function(err) { |
|
if(err) throw err |
|
}) |
|
}); |
|
}) |
|
|