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

use Slim\App;
use Slim\Container;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Console\Input\InputOption;

set_time_limit(0);

$loader = require_once __DIR__.'/../app/autoload.php';

$envOption = new InputOption('--env', '-e', InputOption::VALUE_REQUIRED, 'The Environment name.', 'dev');

$input = new ArgvInput();

$env = $input->getParameterOption([$envOption->getName(), $envOption->getShortcut()], $envOption->getDefault());

/** @var App $app */
$app = require_once __DIR__ . '/../app/app.php';

/** @var Container $container */
$container = $app->getContainer();

require_once __DIR__ . '/../app/commands.php';

$console = new Application($container['console.name'], $container['console.version']);

foreach ([$envOption] as $inputOption) {
    $console->getDefinition()->addOption($inputOption);
}

foreach ($container['console.helpers'] as $alias => $helper) {
    $console->getHelperSet()->set($helper, $alias);
}

$console->addCommands($container['console.commands']);
$console->run($input);
