<?php

// CLI specific bootstrapping
use SilverStripe\Control\CLIRequestBuilder;
use SilverStripe\Control\HTTPApplication;
use SilverStripe\Core\CoreKernel;
use SilverStripe\ORM\DB;
use SilverStripe\ORM\Connect\NullDatabase;
use SilverStripe\Core\DatabaselessKernel;

require __DIR__ . '/src/includes/autoload.php';

// Ensure that people can't access this from a web-server
if (!in_array(PHP_SAPI, ["cli", "cgi", "cgi-fcgi"])) {
    echo "cli-script.php can't be run from a web request, you have to run it on the command-line.";
    die();
}

// Build request and detect flush
$request = CLIRequestBuilder::createFromEnvironment();


$skipDatabase = in_array('--no-database', $argv);
if ($skipDatabase) {
    DB::set_conn(new NullDatabase());
}
// Default application
$kernel = $skipDatabase
    ? new DatabaselessKernel(BASE_PATH)
    : new CoreKernel(BASE_PATH);

$app = new HTTPApplication($kernel);
$response = $app->handle($request);

$response->output();