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

use Symfony\Component\Console\Application;
use Symfony\Component\Console\DependencyInjection\AddConsoleCommandPass;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use WebnetFr\DatabaseAnonymizer\DependencyInjection\Compiler\ChainGeneratorFactoryPass;
use WebnetFr\DatabaseAnonymizer\DependencyInjection\WebnetFrDatabaseAnonymizerExtension;

set_time_limit(0);

$files = [__DIR__.'/../vendor/autoload.php', __DIR__.'/../../../autoload.php'];
foreach ($files as $file) {
    if (file_exists($file)) {
        $loader = require $file;

        break;
    }
}

if (!class_exists(Application::class)) {
    throw new \RuntimeException('You need to add "symfony/console" as a Composer dependency.');
}

$container = new ContainerBuilder();
$container->addCompilerPass(new AddConsoleCommandPass());
$container->addCompilerPass(new ChainGeneratorFactoryPass());
$container->registerExtension(new WebnetFrDatabaseAnonymizerExtension());
$container->loadFromExtension('webnet_fr_database_anonymizer');
$container->compile();

$application = (new Application('Database anonymizer', '0.0.1'));
$application->setCommandLoader($container->get('console.command_loader'));
$application->run();
