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

$autoloader = require __DIR__ . '/../vendor/autoload.php';

use DrupalCodeGenerator\Commands;
use DrupalCodeGenerator\GeneratorDiscovery;
use Symfony\Component\Console\Application;
use Symfony\Component\Filesystem\Filesystem;

// Setup target directories.
$commands_directories[] = DCG_ROOT . '/src/Commands';
if (file_exists(DCG_HOME . '/Commands')) {
  $commands_directories[] = DCG_HOME . '/Commands';
  $autoloader->addPsr4('DrupalCodeGenerator\\', DCG_HOME);
}

$twig_directories[] = DCG_ROOT . '/src/Templates';
if (file_exists(DCG_HOME . '/Templates')) {
  $twig_directories[] = DCG_HOME . '/Ttemplates';
}

// Discover generators.
$discovery = new GeneratorDiscovery($commands_directories, $twig_directories, new Filesystem());
$generators = $discovery->getGenerators();

// Create navigation command.
$navigation = new Commands\Navigation();
$navigation->init($generators);

// Build application.
$application = new Application('Drupal Code Generator', '@git-version@');
$application->addCommands($generators);
$application->add($navigation);
$application->setDefaultCommand('navigation');
$application->run();
