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

use CatPaw\Attributes\Option;
use CatPaw\Bootstrap;
$_ENV = [
    ...$_ENV,
    ...getenv(),
];
require 'vendor/autoload.php';


$entryOption       = new Option('-e');
$nameOption        = new Option('-n');
$librariesOption   = new Option('-l');
$resourcesOption   = new Option('-r');
$dieOnChangeOption = new Option('-d');
$watchOption       = new Option('-w');
$infoOption        = new Option('-i');

$entry       = $entryOption->findValue();
$name        = $nameOption->findValue();
$libraries   = $librariesOption->findValue();
$resources   = $resourcesOption->findValue();
$dieOnChange = $dieOnChangeOption->findValue();
$watch       = $watchOption->findValue();
$info        = $infoOption->findValue();

$entry       = $entry     ?? '';
$name        = $name      ?? 'App';
$libraries   = $libraries ?? '';
$resources   = $resources ?? '';
$dieOnChange = false === $dieOnChange;
$watch       = false === $watch;
$info        = false === $info;

try {
    if ($watch) {
        Bootstrap::spawn(
            start: __FILE__,
            entry: $entry,
            name: $name,
            libraries: $libraries,
            info: $info,
            watch: true,
            resources: $resources,
        );
    } else {
        Bootstrap::start(
            entry: $entry,
            name: $name,
            libraries: $libraries,
            info: $info,
            dieOnChange: $dieOnChange,
            resources: $resources,
        );
    }
} catch (Throwable $e) {
    die(((string)$e).PHP_EOL);
}
