@kaylucas/xlf-merge
Version:
Command-line tool for merging XLF files
46 lines (36 loc) • 1.38 kB
JavaScript
const program = require('commander');
const fs = require('fs');
const convert = require('xml-js');
const shell = require('shelljs');
const mergeXlf = require('./merge-xlf');
function runMerge(inputPaths, outputPath) {
const inputFiles = (function*() { yield* shell.ls(inputPaths); })();
const sourceFile = inputFiles.next().value;
console.log('Initial file', sourceFile);
let fileContent = fs.readFileSync(sourceFile).toString();
let output = convert.xml2js(fileContent);
for (let fileIter = inputFiles.next(); !fileIter.done; fileIter = inputFiles.next()) {
fileContent = fs.readFileSync(fileIter.value).toString();
output = mergeXlf(output, convert.xml2js(fileContent), fileIter.value);
}
const outXml = convert.js2xml(output);
fs.writeFileSync(outputPath, outXml);
console.log('Generated output file', outputPath);
}
//runMerge(['data/test3/generic.xlf', 'data/test3/home-page.xlf', 'data/test3/lesson.xlf'], 'data/test3/out.xlf');
//return;
program
.version('1.0.8')
.usage('[options] <input files or pattern such as *.xlf ...>')
.option('-o, --output <output>', 'Output file name')
.parse(process.argv);
if (program.args === 0 || !program.output) {
program.help();
}
try {
runMerge(program.args, program.output);
}
catch (err) {
console.error(err);
}