#!/usr/bin/env php
<?php
/**
 * Yii console bootstrap file.
 *
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

require(__DIR__ . '/vendor/autoload.php');
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../', '.env');
$dotenv->safeLoad();

$dynamicConfig =  (is_readable(__DIR__ . '/config/dynamic.php')) ? require(__DIR__ . '/config/dynamic.php') : [];
$debug = filter_var($_ENV['HUMHUB_DEBUG'] ?? false, FILTER_VALIDATE_BOOLEAN) || !filter_var($dynamicConfig['params']['installed'] ?? false, FILTER_VALIDATE_BOOLEAN);

defined('YII_DEBUG') or define('YII_DEBUG', $debug);

// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));



require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');

$config = yii\helpers\ArrayHelper::merge(
    require(__DIR__ . '/humhub/config/common.php'),
    require(__DIR__ . '/humhub/config/console.php'),
    $dynamicConfig,
    require(__DIR__ . '/config/common.php'),
    require(__DIR__ . '/config/console.php'),
    humhub\helpers\EnvHelper::toConfig($_ENV, \humhub\components\console\Application::class),
);

try {
    $exitCode = (new humhub\components\console\Application($config))->run();
    exit($exitCode);
} catch (\Throwable $e) {
    if (null === humhub\helpers\DatabaseHelper::handleConnectionErrors($e)) {
        throw $e;
    }
}
