C. Scott Ananian has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/401687 )
Change subject: Use Promise.async/yield in tools/sync-baseconfig.js ...................................................................... Use Promise.async/yield in tools/sync-baseconfig.js Uses node-pn package to promisify the standard node `fs` module. Depends-On: I732ae30a5295f6b1f833553c2293bec8b13ff1c9 Change-Id: I7be86becea055aff26aaa81584adc759ad2e81dd --- M tools/sync-baseconfig.js 1 file changed, 22 insertions(+), 26 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid refs/changes/87/401687/1 diff --git a/tools/sync-baseconfig.js b/tools/sync-baseconfig.js index 11c707b..3182735 100755 --- a/tools/sync-baseconfig.js +++ b/tools/sync-baseconfig.js @@ -9,7 +9,7 @@ * See: lib/config/baseconfig/README */ -var fs = require('fs'); +var fs = require('pn/fs'); var path = require('path'); var yargs = require('yargs'); var yaml = require('js-yaml'); @@ -17,9 +17,10 @@ var ConfigRequest = require('../lib/mw/ApiRequest.js').ConfigRequest; var MWParserEnvironment = require('../lib/config/MWParserEnvironment.js').MWParserEnvironment; var ParsoidConfig = require('../lib/config/ParsoidConfig.js').ParsoidConfig; +var Promise = require('../lib/utils/promise.js'); var Util = require('../lib/utils/Util.js').Util; -var update = function(opts) { +var update = Promise.async(function *(opts) { var prefix = opts.prefix || null; var domain = opts.domain || null; @@ -40,7 +41,7 @@ path.resolve('.', opts.config) : path.resolve(__dirname, '../config.yaml'); // Assuming Parsoid is the first service in the list - parsoidOptions = yaml.load(fs.readFileSync(p, 'utf8')).services[0].conf; + parsoidOptions = yaml.load(yield fs.readFile(p, 'utf8')).services[0].conf; } Util.setTemplatingAndProcessingFlags(parsoidOptions, opts); @@ -53,29 +54,24 @@ var pc = new ParsoidConfig(null, parsoidOptions); pc.defaultWiki = prefix ? prefix : pc.reverseMwApiMap.get(domain); - var env; - return MWParserEnvironment.getParserEnv(pc, { + var env = yield MWParserEnvironment.getParserEnv(pc, { prefix: prefix, domain: domain, - }) - .then(function(_env) { - env = _env; - var wiki = env.conf.wiki; - return ConfigRequest.promise(wiki.apiURI, env, wiki.apiProxy); - }) - .then(function(resultConf) { - var configDir = path.resolve(__dirname, '../lib/config'); - var iwp = env.conf.wiki.iwp; - // HACK for be-tarask - if (iwp === 'be_x_oldwiki') { iwp = 'be-taraskwiki'; } - var localConfigFile = path.resolve( - configDir, './baseconfig/' + iwp + '.json' - ); - var resultStr = JSON.stringify({ query: resultConf }, null, 2); - fs.writeFileSync(localConfigFile, resultStr, 'utf8'); - console.log('Wrote', localConfigFile); }); -}; + var resultConf = yield ConfigRequest.promise( + env.conf.wiki.apiURI, env, env.conf.wiki.apiProxy + ); + var configDir = path.resolve(__dirname, '../lib/config'); + var iwp = env.conf.wiki.iwp; + // HACK for be-tarask + if (iwp === 'be_x_oldwiki') { iwp = 'be-taraskwiki'; } + var localConfigFile = path.resolve( + configDir, './baseconfig/' + iwp + '.json' + ); + var resultStr = JSON.stringify({ query: resultConf }, null, 2); + yield fs.writeFile(localConfigFile, resultStr, 'utf8'); + console.log('Wrote', localConfigFile); +}); var usage = 'Usage: $0 [options]\n' + 'Rewrites one cached siteinfo configuration.\n' + @@ -98,11 +94,11 @@ }, })); -(function() { +Promise.async(function *() { var argv = yopts.argv; if (argv.help) { yopts.showHelp(); return; } - update(argv).done(); -}()); + yield update(argv); +})().done(); -- To view, visit https://gerrit.wikimedia.org/r/401687 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7be86becea055aff26aaa81584adc759ad2e81dd Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/services/parsoid Gerrit-Branch: master Gerrit-Owner: C. Scott Ananian <canan...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits