#!/usr/bin/env php
<?php
$appName = 'phpReflect';

if (\Phar::running()) {
    $vendorDir = 'phar://' . strtolower($appName) . '.phar/vendor';
} else {
    putenv('BARTLETT_COMPATINFO_DB=/usr/share/php-bartlett-PHP-CompatInfo/compatinfo.sqlite');

    $vendorDir = '/usr/share/php';

    if (!getenv("BARTLETTRC")) {
        putenv("BARTLETTRC=" . strtolower($appName) . '.json');
    }
}
require_once $vendorDir . '/PhpParser/Autoloader.php';
PhpParser\Autoloader::register();

require_once $vendorDir . '/Symfony/Component/ClassLoader/UniversalClassLoader.php';
require_once $vendorDir . '/SebastianBergmann/Version/Version.php';

use Symfony\Component\ClassLoader\UniversalClassLoader;

$loader = new UniversalClassLoader();
$loader->registerNamespaces(array(
    'Symfony\\Component'                  => $vendorDir,
    'Doctrine\\Common'                    => $vendorDir,
    'phpDocumentor\\Reflection'           => $vendorDir,
    'Seld\\JsonLint'                      => $vendorDir,
    'JsonSchema'                          => $vendorDir,
    'Psr\\Log'                            => $vendorDir,
    'Monolog'                             => $vendorDir,
    'Bartlett'                            => $vendorDir,
));
$loader->useIncludePath(true);
$loader->register();

if (PHP_SAPI !== 'cli') {
    return;
}

use Bartlett\Reflect\Environment;
use Bartlett\Reflect\Console\Application;

Environment::setScanDir();

$application = new Application($appName, '3.1.0');
$application->run();
