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

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

use DrupalCodeGenerator\Commands\Navigation;
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 . '/Templates';
}

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

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

// Add a navigation command.
$application->add(new Navigation($generators));
$application->setDefaultCommand('navigation');

// Run.
$application->run();
