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

if ( ! file_exists( 'vendor/autoload.php' ) ) {
    die( 'Running chisel outside project.' );
}

$argline = $argv;
array_shift( $argline );

// Proxy these commands, forward the rest
$cmd = array_shift( $argline );

$argline = implode( ' ', $argline );

if ( in_array( $cmd, [ 'up', 'restart', 'workspace' ] ) ) {
    $_SERVER[ 'argv' ] = [ "artisan", "chisel:" . $cmd, $argline ? $argline : null ];
} else {
    $_SERVER[ 'argv' ] = [ "artisan", "chisel:compose", $cmd . ( $argline ? ' ' . $argline : null ) ];
}


// Boot Artisan

define( 'LARAVEL_START', microtime( true ) );

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/

require 'vendor/autoload.php';

$app = require_once 'bootstrap/app.php';

/*
|--------------------------------------------------------------------------
| Run The Artisan Application
|--------------------------------------------------------------------------
|
| When we run the console application, the current CLI command will be
| executed in this console and the response sent back to a terminal
| or another output device for the developers. Here goes nothing!
|
*/

$kernel = $app->make( Illuminate\Contracts\Console\Kernel::class );

$status = $kernel->handle(
    $input = new Symfony\Component\Console\Input\ArgvInput,
    new Symfony\Component\Console\Output\ConsoleOutput
);

/*
|--------------------------------------------------------------------------
| Shutdown The Application
|--------------------------------------------------------------------------
|
| Once Artisan has finished running, we will fire off the shutdown events
| so that any final work may be done by the application before we shut
| down the process. This is the last thing to happen to the request.
|
*/

$kernel->terminate( $input, $status );

exit( $status );
