pcottle.learnGitBranching/src/js/intl/checkStrings.js
2013-03-07 20:49:44 -08:00

47 lines
1.1 KiB
JavaScript

var sys = require('sys');
var _ = require('underscore');
var child_process = require('child_process');
var strings = require('../intl/strings').strings;
var searchCommand = 'grep -C 2 -r "intl.str(" ../../';
var genBadKeyCommand = function(key) {
return 'grep -r "' + key + '" ../../';
};
var easyRegex = /intl.str\('([a-zA-Z\-]+)'/g;
var hardRegex = /\s+'([a-z\-]+)',/g;
var findKey = function(badKey) {
child_process.exec(genBadKeyCommand(badKey), function(err, output) {
console.log(output);
});
};
var validateKey = function(key) {
if (!strings[key]) {
console.log('NO KEY for: "', key, '"');
findKey(key);
}
};
var processLines = function(lines) {
_.each(lines, function(line) {
var results = easyRegex.exec(line);
if (results && results[1]) {
validateKey(results[1]);
return;
}
// could be a multi-liner
results = hardRegex.exec(line);
if (results && results[1]) {
validateKey(results[1]);
}
});
};
child_process.exec(
searchCommand,
function(err, output) {
processLines(output.split('\n'));
});