MCPcopy
hub / github.com/ampproject/amphtml / parseExtensionFlags

Function parseExtensionFlags

build-system/tasks/extension-helpers.js:217–273  ·  view source on GitHub ↗

* Parses the --extensions, --extensions_from, and the --noextensions flags, * and prints a helpful message that lets the developer know how to (pre)build * the runtime with a list of extensions, all the extensions used by a test * file, or no extensions at all. * @param {boolean=} preBuild

(preBuild = false)

Source from the content-addressed store, hash-verified

215 * @param {boolean=} preBuild
216 */
217function parseExtensionFlags(preBuild = false) {
218 if (isCiBuild()) {
219 return;
220 }
221
222 const buildOrPreBuild = preBuild ? 'pre-build' : 'build';
223 const coreRuntimeOnlyMessage =
224 green('⤷ Use ') +
225 cyan('--core_runtime_only ') +
226 green('to build just the core runtime and skip other JS targets.');
227 const noExtensionsMessage =
228 green('⤷ Use ') +
229 cyan('--noextensions ') +
230 green('to skip building extensions.');
231 const extensionsMessage =
232 green('⤷ Use ') +
233 cyan('--extensions=amp-foo,amp-bar ') +
234 green(`to choose which extensions to ${buildOrPreBuild}.`);
235 const inaboxSetMessage =
236 green('⤷ Use ') +
237 cyan('--extensions=inabox ') +
238 green(`to ${buildOrPreBuild} just the extensions needed to load AMP ads.`);
239 const extensionsFromMessage =
240 green('⤷ Use ') +
241 cyan('--extensions_from=examples/foo.amp.html ') +
242 green(`to ${buildOrPreBuild} just the extensions needed to load `) +
243 cyan('foo.amp.html') +
244 green('.');
245
246 if (argv.core_runtime_only && !(argv.extensions || argv.extensions_from)) {
247 log(green('Building just the core runtime.'));
248 } else if (preBuild) {
249 log(
250 green('Pre-building extension(s):'),
251 cyan(getExtensionsToBuild(preBuild).join(', '))
252 );
253 log(extensionsMessage);
254 log(inaboxSetMessage);
255 log(extensionsFromMessage);
256 } else {
257 if (argv.noextensions) {
258 log(green('Not building any AMP extensions.'));
259 } else if (argv.extensions || argv.extensions_from) {
260 log(
261 green('Building extension(s):'),
262 cyan(getExtensionsToBuild().join(', '))
263 );
264 } else {
265 log(green('Building all AMP extensions.'));
266 }
267 log(coreRuntimeOnlyMessage);
268 log(noExtensionsMessage);
269 log(extensionsMessage);
270 log(inaboxSetMessage);
271 log(extensionsFromMessage);
272 }
273}
274

Callers 3

printDistHelpFunction · 0.85
buildFunction · 0.85
defaultTaskFunction · 0.85

Calls 5

isCiBuildFunction · 0.85
greenFunction · 0.85
cyanFunction · 0.85
getExtensionsToBuildFunction · 0.85
logFunction · 0.50

Tested by

no test coverage detected