30 lines
686 B
PHP
Executable File
30 lines
686 B
PHP
Executable File
#!/usr/bin/env php
|
|
<?php declare(strict_types=1);
|
|
|
|
namespace Aviat\Kilo;
|
|
|
|
require_once __DIR__ . '/vendor/autoload.php';
|
|
|
|
// Log notices/errors/warnings to file
|
|
set_exception_handler(static function (mixed $e) {
|
|
$msg = print_r([
|
|
'code' => $e->getCode(),
|
|
'message' => $e->getMessage(),
|
|
'file' => $e->getFile(),
|
|
'line' => $e->getLine(),
|
|
'trace' => $e->getTraceAsString(),
|
|
], TRUE);
|
|
file_put_contents('kilo.log', $msg, FILE_APPEND);
|
|
});
|
|
|
|
// ! Init with an IIFE
|
|
return (static function (int $argc, array $argv): int {
|
|
Termios::enableRawMode();
|
|
register_shutdown_function([Termios::class, 'disableRawMode']);
|
|
|
|
Editor::new($argc, $argv)->run();
|
|
|
|
return 0;
|
|
})($argc, $argv);
|
|
|