UNPKG

2.04 kBJavaScriptView Raw
1var path = require('path');
2var fs = require('fs');
3
4var walk = function(dir, done) {
5 var results = [];
6 fs.readdir(dir, function(err, list) {
7 if (err) return done(err);
8 var pending = list.length;
9 if (!pending) return done(null, results);
10 list.forEach(function(file) {
11 file = dir + '/' + file;
12 fs.stat(file, function(err, stat) {
13 if (stat && stat.isDirectory()) {
14 walk(file, function(err, res) {
15 results = results.concat(res);
16 if (!--pending) done(null, results);
17 });
18 } else {
19 results.push(file);
20 if (!--pending) done(null, results);
21 }
22 });
23 });
24 });
25};
26
27walk(path.join(__dirname, '../lib/commands'), function (err, files) {
28 var results = [];
29
30 files.forEach(function (file) {
31 if (path.extname(file) === '.js' || path.extname(file) === '._js') {
32 var content = fs.readFileSync(file).toString();
33
34 var startIndex = 0;
35 var found;
36 do {
37 foundIndex = content.indexOf('$(', startIndex);
38
39 if (foundIndex >= 0) {
40 var bracketCount = 0;
41 var stop = false;
42 for (var i = foundIndex + '$('.length; !stop && i < content.length; i++) {
43 if (content[i] === '(') {
44 bracketCount++;
45 } else if (content[i] === ')') {
46 if (bracketCount === 0) {
47 var match = content.substr(foundIndex + 3, (i - foundIndex) - 4);
48 match = match.replace(/\\'/g, '\'').replace(/\\\\/g, '\\').replace(/\\n/g, '\n');
49 results.push(match);
50 startIndex = i;
51 stop = true;
52 } else {
53 bracketCount--;
54 }
55 }
56 }
57 }
58 } while (foundIndex > 0);
59 }
60 });
61
62 var sortedKeys = results.sort();
63 var labels = {};
64 sortedKeys.forEach(function (label) {
65 labels[label] = label;
66 });
67
68 fs.writeFileSync(path.join(__dirname, '../lib/locales/en-us.json'), JSON.stringify(labels, null, 4));
69});
\No newline at end of file