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

// if you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);

set_time_limit(0);

require_once __DIR__ . '/../autoload.php';
require_once __DIR__ . '/AppKernel.php';
require_once __DIR__ . '/BaseModel.php';

use Common\ModulesSettings;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;
use Backend\Init as BackendInit;

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

// Fork has not yet been installed
$parametersFile = __DIR__ . '/config/parameters.yml';
if (!file_exists($parametersFile)) {
    $env = 'install';
}

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

$kernel = new AppKernel($env, $debug);

// make our container available statically. This is needed to make our static models work
BaseModel::setContainer($kernel->getContainer());

define('APPLICATION', 'Console');
$backend = new BackendInit($kernel);
$backend->initialize('Console');

$application = new Application($kernel);
$application->add(new \Console\Locale\ImportLocaleCommand());
if ($kernel->getContainer()->get('fork.settings') instanceof ModulesSettings) {
    $application->add(
        new \Console\Locale\EnableLocaleCommand(
            $kernel->getContainer()->get('fork.settings'),
            $kernel->getContainer()->getParameter('installed_modules'),
            $kernel->getContainer()->getParameter('site.multilanguage')
        )
    );
}
$application->run($input);
