[MediaWiki-commits] [Gerrit] Add `--domain` option to tests/parse.js and tests/fetch-wt.js. - change (mediawiki...parsoid)
jenkins-bot has submitted this change and it was merged. Change subject: Add `--domain` option to tests/parse.js and tests/fetch-wt.js. .. Add `--domain` option to tests/parse.js and tests/fetch-wt.js. Try to standardize on `--domain` instead of `--prefix` where possible. Change-Id: I75bc85e39c57735b5f2eab73499a4dc8610f1be6 --- M lib/index.js M tests/fetch-wt.js M tests/parse.js 3 files changed, 68 insertions(+), 24 deletions(-) Approvals: Subramanya Sastry: Looks good to me, approved Cscott: Looks good to me, approved jenkins-bot: Verified diff --git a/lib/index.js b/lib/index.js index da89050..07fed8b 100644 --- a/lib/index.js +++ b/lib/index.js @@ -84,17 +84,25 @@ } var prefix = argv.prefix || null; + var domain = argv.domain || null; if (argv.apiURL) { prefix = 'customwiki'; + domain = null; + } else if (!(prefix || domain)) { + domain = 'en.wikipedia.org'; } - var parsoidConfig = options.parsoidConfig || - new ParsoidConfig(options.config || null, { defaultWiki: prefix }); + var parsoidConfig = options.parsoidConfig; + if (!parsoidConfig) { + parsoidConfig = new ParsoidConfig(options.config || null); + parsoidConfig.defaultWiki = prefix ? prefix : + parsoidConfig.reverseMwApiMap.get(domain); + } if (argv.pdoc) { parsoidConfig.addHTMLTemplateParameters = true; } - return parseJs.parse(input || '', argv, parsoidConfig, prefix).then(function(res) { + return parseJs.parse(input || '', argv, parsoidConfig, prefix, domain).then(function(res) { return argv.pdoc ? new JsApi.PDoc(res.env, res.out) : res; }).nodify(optCb); }; diff --git a/tests/fetch-wt.js b/tests/fetch-wt.js index 16d010b..bd4fc71 100755 --- a/tests/fetch-wt.js +++ b/tests/fetch-wt.js @@ -9,32 +9,52 @@ */ var fs = require('fs'); +var path = require('path'); var yargs = require('yargs'); + var TemplateRequest = require('../lib/mediawiki.ApiRequest.js').TemplateRequest; var ParsoidConfig = require('../lib/mediawiki.ParsoidConfig').ParsoidConfig; var MWParserEnvironment = require('../lib/mediawiki.parser.environment.js').MWParserEnvironment; var Util = require('../lib/mediawiki.Util.js').Util; -var fetch = function(page, revid, options) { - var prefix = options.prefix || null; +var fetch = function(page, revid, opts) { + var prefix = opts.prefix || null; + var domain = opts.domain || null; - if (options.apiURL) { + if (opts.apiURL) { prefix = 'customwiki'; + domain = null; + } else if (!(prefix || domain)) { + domain = 'en.wikipedia.org'; + } + + var local = null; + if (Util.booleanOption(opts.config)) { + var p = (typeof (opts.config) === 'string') ? + path.resolve('.', opts.config) : + path.resolve(__dirname, '../api/localsettings.js'); + local = require(p); } var setup = function(parsoidConfig) { - Util.setTemplatingAndProcessingFlags(parsoidConfig, options); + if (local && local.setup) { + local.setup(parsoidConfig); + } + Util.setTemplatingAndProcessingFlags(parsoidConfig, opts); + Util.setDebuggingFlags(parsoidConfig, opts); }; var parsoidConfig = new ParsoidConfig( - { setup: setup }, - { defaultWiki: prefix } + { setup: setup } ); + parsoidConfig.defaultWiki = prefix ? prefix : + parsoidConfig.reverseMwApiMap.get(domain); var env; MWParserEnvironment.getParserEnv(parsoidConfig, null, { prefix: prefix, + domain: domain, pageName: page, }).then(function(_env) { env = _env; @@ -42,8 +62,8 @@ env.resolveTitle(env.normalizeTitle(env.page.name), '') : null; return TemplateRequest.setPageSrcInfo(env, target, revid); }).then(function() { - if (options.output) { - fs.writeFileSync(options.output, env.page.src, 'utf8'); + if (opts.output) { + fs.writeFileSync(opts.output, env.page.src, 'utf8'); } else { console.log(env.page.src); } @@ -53,14 +73,23 @@ var usage = 'Usage: $0 [options] \n' + 'If first argument is numeric, it is used as a rev id; otherwise it is\n' + 'used as a title. Use the --title option for a numeric title.'; -var opts = yargs.usage(usage, { +var opts = yargs.usage(usage, Util.addStandardOptions({ 'output': {
[MediaWiki-commits] [Gerrit] Add `--domain` option to tests/parse.js and tests/fetch-wt.js. - change (mediawiki...parsoid)
Cscott has uploaded a new change for review. https://gerrit.wikimedia.org/r/242609 Change subject: Add `--domain` option to tests/parse.js and tests/fetch-wt.js. .. Add `--domain` option to tests/parse.js and tests/fetch-wt.js. Try to standardize on `--domain` instead of `--prefix` where possible. Change-Id: I75bc85e39c57735b5f2eab73499a4dc8610f1be6 --- M tests/fetch-wt.js M tests/parse.js 2 files changed, 50 insertions(+), 16 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid refs/changes/09/242609/1 diff --git a/tests/fetch-wt.js b/tests/fetch-wt.js index 16d010b..9a1a51d 100755 --- a/tests/fetch-wt.js +++ b/tests/fetch-wt.js @@ -18,23 +18,41 @@ var fetch = function(page, revid, options) { var prefix = options.prefix || null; + var domain = options.domain || null; if (options.apiURL) { prefix = 'customwiki'; + domain = null; + } else if (!(prefix || domain)) { + domain = 'en.wikipedia.org'; + } + + var local = null; + if (Util.booleanOption(argv.config)) { + var p = (typeof (argv.config) === 'string') ? + path.resolve('.', argv.config) : + path.resolve(__dirname, '../api/localsettings.js'); + local = require(p); } var setup = function(parsoidConfig) { - Util.setTemplatingAndProcessingFlags(parsoidConfig, options); + if (local && local.setup) { + local.setup(parsoidConfig); + } + Util.setTemplatingAndProcessingFlags(parsoidConfig, argv); + Util.setDebuggingFlags(parsoidConfig, argv); }; var parsoidConfig = new ParsoidConfig( - { setup: setup }, - { defaultWiki: prefix } + { setup: setup } ); + parsoidConfig.defaultWiki = prefix ? prefix : + parsoidConfig.reverseMwApiMap.get(domain); var env; MWParserEnvironment.getParserEnv(parsoidConfig, null, { prefix: prefix, + domain: domain, pageName: page, }).then(function(_env) { env = _env; @@ -53,14 +71,23 @@ var usage = 'Usage: $0 [options] \n' + 'If first argument is numeric, it is used as a rev id; otherwise it is\n' + 'used as a title. Use the --title option for a numeric title.'; -var opts = yargs.usage(usage, { +var opts = yargs.usage(usage, Util.addStandardOptions({ 'output': { description: "Write page to given file", + }, + 'config': { + description: "Path to a localsettings.js file. Use --config w/ no argument to default to the server's localsettings.js", + 'default': false, }, 'prefix': { description: 'Which wiki prefix to use; e.g. "enwiki" for English wikipedia, "eswiki" for Spanish, "mediawikiwiki" for mediawiki.org', 'boolean': false, - 'default': 'enwiki', + 'default': null, + }, + 'domain': { + description: 'Which wiki to use; e.g. "en.wikipedia.org" for English wikipedia, "es.wikipedia.org" for Spanish, "www.mediawiki.org" for mediawiki.org', + 'boolean': false, + 'default': null, }, 'revid': { description: 'Page revision to fetch', @@ -70,12 +97,7 @@ description: 'Page title to fetch (only if revid is not present)', 'boolean': false, }, - 'help': { - description: 'Show this message', - 'boolean': true, - 'default': false, - }, -}); +})); var argv = opts.argv; var title = null; diff --git a/tests/parse.js b/tests/parse.js index de63f16..401bc09 100755 --- a/tests/parse.js +++ b/tests/parse.js @@ -58,7 +58,13 @@ }, 'prefix': { description: 'Which wiki prefix to use; e.g. "enwiki" for English wikipedia, "eswiki" for Spanish, "mediawikiwiki" for mediawiki.org', - 'default': 'enwiki', + 'boolean': false, + 'default': null, + }, + 'domain': { + description: 'Which wiki to use; e.g. "en.wikipedia.org" for English wikipedia, "es.wikipedia.org" for Spanish, "mediawiki.org" for mediawiki.org', + 'boolean': false, + 'default': null, }, 'page': { description: 'The page name, returned for {{PAGENAME}}. If no input is given (ie. empty/stdin closed), it downloads and parses the page.', @@ -191,9 +197,10 @@ }); }; -var parse = exports.parse = function(input, argv, parsoidConfig, prefix) { +var parse = exports.parse = function(input, argv, parsoidConfig, prefix, domain) { return