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

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');

use App\Commands\Console\Serve;
use App\Commands\Console\Table;
use Illuminate\Container\Container;
use Illuminate\Events\Dispatcher;
use Illuminate\Console\Application;
use Illuminate\Database\Capsule\Manager as Capsule;


require __DIR__. '/bootstrap.php';

$container = new Container;
$events = new Dispatcher($container);

$app = new Application($container, $events, 'Version 1');

$db =  BASE_DIR . '/database/data.sqlite';

// only create database file if it doesn't exist yet
if (file_exists($db) === false) {
    echo 'Creating database file…' . PHP_EOL;
    try {
        // create new SQLite database file
        $database = new SQLite3($db);
    } catch (Exception $e) {
        echo $e->getMessage();
    }
}
$capsule = new Capsule;
$capsule->addConnection([
    'driver'    => 'sqlite',
    'database' => $db,
    'prefix' => '',
]);
// Make this Capsule instance available globally via static methods... (optional)
$capsule->setAsGlobal();
// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher())
$capsule->bootEloquent();


$app->setName('Appkit Console');

// Bind a command
$app->resolve(Serve::class);
$app->resolve(Table::class);

$app->run();
