#!/usr/bin/env php
<?php

/*
 * This file is part of Contao.
 *
 * (c) Leo Feyer
 *
 * @license LGPL-3.0-or-later
 */

use Contao\ManagerBundle\ContaoManager\Plugin as ManagerBundlePlugin;
use Contao\ManagerBundle\HttpKernel\ContaoKernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;

set_time_limit(0);

if (file_exists(__DIR__.'/../autoload.php')) {
    // Composer bin directory
    $projectDir = \dirname(\dirname(__DIR__));
} elseif (file_exists(__DIR__.'/../../../../autoload.php')) {
    // Package bin directory (monorepo)
    $projectDir = \dirname(\dirname(\dirname(\dirname(\dirname(__DIR__)))));
} else {
    // Package bin directory
    $projectDir = \dirname(\dirname(\dirname(\dirname(__DIR__))));
}

/** @var Composer\Autoload\ClassLoader $loader */
$loader = require $projectDir.'/vendor/autoload.php';

ManagerBundlePlugin::autoloadModules($projectDir.'/system/modules');

$input = new ArgvInput();
$env = $input->getParameterOption(['--env', '-e'], getenv('SYMFONY_ENV') ?: 'prod');
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(['--no-debug', '']) && $env !== 'prod';

if ($debug) {
    Debug::enable();
}

ContaoKernel::setProjectDir($projectDir);
$kernel = new ContaoKernel($env, $debug);
$application = new Application($kernel);
$application->run($input);
