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

use ArtARTs36\MergeRequestLinter\Configuration\PhpConfigLoader;
use ArtARTs36\MergeRequestLinter\Console\DumpCommand;
use ArtARTs36\MergeRequestLinter\Console\InstallCommand;
use ArtARTs36\MergeRequestLinter\Console\LintCommand;
use Symfony\Component\Console\Application;

$loaded = false;

if (isset($_composer_autoload_path)) {
    $loaded = true;
    
    require $_composer_autoload_path;
} else {
    foreach ([$_composer_autoload_path ?? '../../..', '../..', '..', 'vendor', '../vendor', '../../vendor'] as $path) {
        if (\is_file($autoload_file = __DIR__ . '/' . $path . '/autoload.php')) {
            require $autoload_file;
            $loaded = true;
            break;
        }
    }
}

if ($loaded === false) {
    fwrite(\STDERR, 'Composer autoload.php not found');

    exit(1);
}

$application = new Application('Merge Request Linter', '0.1.1');

$configLoader = new PhpConfigLoader();

$application->add(new LintCommand($configLoader));
$application->add(new InstallCommand());
$application->add(new DumpCommand($configLoader));

$application->run();
