<?php 
 
declare(strict_types=1); 
 
/************************************************************************************** 
 * 
 * Catalyst PHP Framework 
 * PHP Version 8.3 (Required). 
 * 
 * @package   Catalyst 
 * @subpackage Public 
 * @see       https://github.com/arcanisgk/catalyst 
 * 
 * @author    Walter Nuñez (arcanisgk/original founder) <[email protected]> 
 * @copyright 2023 - 2025 
 * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License 
 * 
 * @note      This program is distributed in the hope that it will be useful 
 *            WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
 *            or FITNESS FOR A PARTICULAR PURPOSE. 
 * 
 * @category  Framework 
 * @filesource 
 * 
 * @link      https://catalyst.dock Local development URL 
 * 
 */ 
 
use Catalyst\Framework\Core\Argument\Argument; 
use Catalyst\Kernel; 
 
require_once realpath(implode(DIRECTORY_SEPARATOR, [dirname(__FILE__), '..', '..', 'vendor', 'autoload.php'])); 
 
// Bootstrap the application 
$app = new Kernel(); 
 
try { 
    $app->bootstrap(); 
 
    // Parse command line arguments 
    $args = new Argument(); 
 
    // Register commands 
    // Format: command:action => [handler class, method] 
    $commands = []; 
 
    // Get the command from arguments 
    $command = $args->getCommand(); 
 
    if (empty($command)) { 
        // List available commands if none specified 
        echo "Available commands:\n"; 
        foreach (array_keys($commands) as $cmd) { 
            echo "  $cmd\n"; 
        } 
        echo "\nUse 'php cli.php command --help' for more information on a command.\n"; 
        exit(0); 
    } 
 
    // Execute the command if registered 
    if (isset($commands[$command])) { 
        [$handlerClass, $method] = $commands[$command]; 
        $handler = new $handlerClass(); 
        $handler->$method($args); 
    } else { 
        echo "Unknown command: $command\n"; 
        echo "Use 'php cli.php' to see available commands.\n"; 
        exit(1); 
    } 
 
} catch (Exception $e) { 
    echo 'Error: ' . $e->getMessage() . NL; 
    exit(1); 
} 
 
 |