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

declare(strict_types=1);

use Haemanthus\CodeIgniter3IdeHelper\Application;
use Haemanthus\CodeIgniter3IdeHelper\Commands\GenerateHelperCommand;
use Haemanthus\CodeIgniter3IdeHelper\Commands\StartVarDumperCommand;
use Haemanthus\CodeIgniter3IdeHelper\Providers\AppServiceProvider;

define('ENVIRONMENT', getenv('IDE_HELPER_ENV') ?: 'production');

switch (true) {
    case isset($_composer_autoload_path):
        $autoload = $_composer_autoload_path;
        break;

    case file_exists(__DIR__ . '/../vendor/autoload.php'):
        $autoload = __DIR__ . '/../vendor/autoload.php';
        break;

    default:
        $autoload = __DIR__ . '/../../../vendor/autoload.php';
        break;
}

require_once $autoload;

$container = AppServiceProvider::container();

/** @var Application */
$app = $container->get(Application::class);

if (ENVIRONMENT === 'development') {
    $app->addCommand($container->get(StartVarDumperCommand::class));
}

$app->addCommand($container->get(GenerateHelperCommand::class));
$app->run();
