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

use Aura\Cli\CliFactory;
use Aura\Cli\Status;
use WyriHaximus\ApiClient\Tools\ResourceGenerator;

/**
 * Locate and load autoloader
 */
foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
    if (file_exists($file)) {
        require $file;
        break;
    }
}

/**
 * Instance application
 */
$cliFactory = new CliFactory();
$cliContext = $cliFactory->newContext($GLOBALS);
$cliStdio = $cliFactory->newStdio();
$resourceGenerator = new ResourceGenerator($cliContext, $cliStdio);

/**
 * Run application
 */
try {
    $resourceGenerator->run();
} catch (Exception $e) {
    $message = $e->getMessage();
    $cliStdio->errln(str_pad(' ', strlen($message)));
    $cliStdio->errln($message);
    $cliStdio->errln(str_pad(' ', strlen($message)));

    $cliStdio->outln('USAGE');
    $cliStdio->outln("\t" . 'api-client-resource-generator <definition1> [<definition1>] <path>');
    $cliStdio->outln('');
    $cliStdio->outln('SINGLE EXAMPLE');
    $cliStdio->outln("\t" . 'api-client-resource-generator ./yaml/resource.yaml ./src/Resource/');
    $cliStdio->outln('');
    $cliStdio->outln('MULTI EXAMPLE');
    $cliStdio->outln("\t" . 'api-client-resource-generator ./yaml/resource-a.yaml ./yaml/resource-b.yaml ./src/Resource/');
    $cliStdio->outln('');
    $cliStdio->outln('WILDCARD EXAMPLE');
    $cliStdio->outln("\t" . 'api-client-resource-generator ./yaml/*.yaml ./src/Resource/');

    exit(Status::USAGE);
}

exit(Status::SUCCESS);
