#!/usr/bin/env php
<?php declare(strict_types=1);

/*
 * This file is part of the PsyshBundle package.
 *
 * (c) Théo FIDRY <theo.fidry@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

if (false === in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
    echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL;
}

set_time_limit(0);

require_once __DIR__.'/../vendor/autoload.php';

use Fidry\PsyshBundle\Functional\AppKernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\ErrorHandler\Debug;

$input = new ArgvInput();

$env = $input->getParameterOption(
        ['--env', '-e'],
        getenv('APP_ENV') ?: 'dev'
);

$debug = (getenv('APP_DEBUG') !== '0')
    && !$input->hasParameterOption(['--no-debug', ''])
    && $env !== 'prod'
;

if ($debug) {
    umask(0000);

    if (class_exists(Debug::class)) {
        Debug::enable();
    }
}

$application = new Application(new AppKernel($env, $debug));
$application->run($input);
