in src/RouterCLILookupCodegenBuilder.hack [64:95]
private function getCodegenFile(
string $path,
?string $namespace,
string $router_classname,
string $utility_classname,
): CodegenFile {
$file = $this->cg->codegenFile($path)
->setDoClobber($this->discardChanges)
->setShebangLine('#!/usr/bin/env hhvm')
->setFileType(CodegenFileType::HACK_STRICT)
->setGeneratedFrom($this->generatedFrom)
->addClass($this->getCodegenClass($router_classname, $utility_classname))
->addFunction(
$this->cg->codegenFunction('hack_router_cli_lookup_generated_main')
->addEmptyUserAttribute('__EntryPoint')
->setReturnType('void')
->setBodyf(
"%s\n".
'$argv = '.
'\\Facebook\\TypeAssert\\matches<KeyedContainer<int, string>>('.
"\\HH\\global_get('argv'));\n".
"(new %s())->main(\$argv);\n",
$this->getInitCode(),
$utility_classname,
),
);
if ($namespace !== null) {
$file->setNamespace($namespace);
}
return $file;
}