* 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)
| 215 | * @param {boolean=} preBuild |
| 216 | */ |
| 217 | function 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 |
no test coverage detected