in src/RouterCLILookupCodegenBuilder.hack [169:215]
private function getInitCode(): string {
$autoloader_dirs = ImmSet {
'/',
'/vendor/',
'/../vendor/',
'/../',
};
$autoloader_files = ImmSet {
'autoload.hack',
};
$full_autoloader_files = Set { };
foreach ($autoloader_files as $file) {
foreach ($autoloader_dirs as $dir) {
$full_autoloader_files[] = \sprintf(
'__DIR__.%s',
\var_export($dir.$file, true),
);
}
}
return $this->cg->codegenHackBuilder()
->startManualSection('init')
->addAssignment(
'$autoloader',
'null',
HackBuilderValues::literal(),
)
->addAssignment(
'$autoloader_candidates',
$full_autoloader_files->immutable(),
HackBuilderValues::immSet(HackBuilderValues::literal()),
)
->startForeachLoop('$autoloader_candidates', null, '$candidate')
->startIfBlock('\\file_exists($candidate)')
->addAssignment('$autoloader', '$candidate', HackBuilderValues::literal())
->addLine('break;')
->endIfBlock()
->endForeachLoop()
->startIfBlock('$autoloader === null')
->addLine('\\fwrite(\\STDERR, "Can\'t find autoloader.\n");')
->addLine('exit(1);')
->endIfBlock()
->addLine('require_once($autoloader);')
->addLine('\\Facebook\\AutoloadMap\\initialize();')
->endManualSection()
->getCode();
}