From: Iskren Chernev Date: Mon, 21 Mar 2016 01:46:00 +0000 (-0700) Subject: Initial version of script for dealing with locale authors X-Git-Tag: 2.15.0~31^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03a01d13327f4d8456c6f9f50f4f9f95c4fc65f4;p=thirdparty%2Fmoment.git Initial version of script for dealing with locale authors --- diff --git a/scripts/locales.js b/scripts/locales.js new file mode 100755 index 000000000..3ce583285 --- /dev/null +++ b/scripts/locales.js @@ -0,0 +1,74 @@ +var fs = require('fs'), + path = require('path'); + +var localeDir = path.join('src', 'locale'); + +var args = process.argv.slice(2); + +function help() { + console.log(process.argv[1], '[list]'); + console.log(); + console.log(" list show all authors in all locales"); + console.log(" mention show all authors in all locales, ready to copy-paste in github issue"); +} + +function extract() { + var authors = {}; + fs.readdirSync(localeDir).forEach(function (locale) { + var content = fs.readFileSync(path.join(localeDir, locale), {encoding: 'utf-8'}), + localeCode = locale.split('.')[0], + localeAuthors = []; + content.split('\n').forEach(function (line) { + var match = line.match(/^\/\/! author.*github[.]com\/(.*)$/); + if (match !== null) { + // console.log(" ", line); + localeAuthors.push(match[1]); + } + }); + if (localeAuthors.length === 0) { + // use to debug + content.split('\n').forEach(function (line) { + var match = line.match(/^\/\/! author(.*)$/); + if (match !== null) { + // console.log(" ", line); + localeAuthors.push('---' + match[1]); + } + }); + console.log(localeCode, localeAuthors); + } else { + authors[localeCode] = localeAuthors; + } + }); + return authors; +} + +function list() { + var authors = extract(); + Object.keys(authors).forEach(function (localeCode) { + console.log(localeCode, authors[localeCode]); + }); +} + +function mention() { + var authors = extract(); + Object.keys(authors).forEach(function (localeCode) { + console.log('- [ ]', localeCode, authors[localeCode].map(function (author) { return "@" + author; }).join(" ")); + }); +} + +if (args.length === 0) { + help(); + process.exit(0); +} + +switch (args[0]) { + case 'list': + list(); + break; + case 'mention': + mention(); + break; + default: + console.log("unknown argument", args[0]); + break; +}