#!/usr/bin/php
<?php

require_once '/usr/share/php/Doctrine/Common/ClassLoader.php';

$classLoaderDoctrine = new \Doctrine\Common\ClassLoader('Doctrine');
$classLoaderDoctrine->register();

$classLoaderSymfony = new \Doctrine\Common\ClassLoader('Symfony');
$classLoaderSymfony->register();

use Doctrine\DBAL\Tools\Console\ConnectionProvider;
use Doctrine\DBAL\Tools\Console\ConsoleRunner;
use Symfony\Component\Console\Helper\HelperSet;

$cwd         = getcwd();
$directories = [$cwd, $cwd . DIRECTORY_SEPARATOR . 'config'];
$configFile  = null;

foreach ($directories as $directory) {
    $configFile = $directory . DIRECTORY_SEPARATOR . 'cli-config.php';

    if (file_exists($configFile)) {
        break;
    }
}

if (! file_exists($configFile)) {
    ConsoleRunner::printCliConfigTemplate();

    exit(1);
}

if (! is_readable($configFile)) {
    echo 'Configuration file [' . $configFile . '] does not have read permission.' . PHP_EOL;

    exit(1);
}

$commands                      = [];
$helperSetOrConnectionProvider = require $configFile;

if (
    ! $helperSetOrConnectionProvider instanceof HelperSet
    && ! $helperSetOrConnectionProvider instanceof ConnectionProvider
) {
    foreach ($GLOBALS as $candidate) {
        if ($candidate instanceof HelperSet) {
            $helperSetOrConnectionProvider = $candidate;

            break;
        }
    }
}

ConsoleRunner::run($helperSetOrConnectionProvider, $commands);
