#!/usr/bin/env php
<?php
/**
 * Yii Framework 2.0 API documentation generator
 *
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

defined('YII_DEBUG') or define('YII_DEBUG', false);

$composerAutoload = [
	__DIR__ . '/vendor/autoload.php', // standalone with "composer install" run
	__DIR__ . '/../../autoload.php', // script is installed as a composer binary
];
$vendorPath = null;
foreach($composerAutoload as $autoload) {
	if (file_exists($autoload)) {
		require($autoload);
		$vendorPath = dirname($autoload);
		break;
	}
}
$yiiDirs = [
	__DIR__ . '/../../framework', // in yii2-dev repo
	__DIR__ . '/vendor/yiisoft/yii2', // standalone with "composer install" run
	__DIR__ . '/../../yiisoft/yii2', // script is installed as a composer binary
];
foreach($yiiDirs as $dir) {
	if (file_exists($dir . '/Yii.php')) {
		require($dir . '/Yii.php');
		break;
	}
}
if (!class_exists('Yii')) {
	echo PHP_EOL . "The Yii Framework 2.0 does not seem to be installed. Try running composer install." . PHP_EOL . PHP_EOL;
	exit(1);
}

Yii::setAlias('@yii/apidoc', __DIR__);

$application = new yii\console\Application([
	'id' => 'yii2-apidoc',
	'basePath' => __DIR__,
	'enableCoreCommands' => false,
	'controllerNamespace' => 'yii\\apidoc\\commands',
]);
if ($vendorPath !== null) {
	$application->setVendorPath($vendorPath);
}
$exitCode = $application->run();
exit($exitCode);