Bugfixes, updated examples
* Added example of using the abort event * Added setter/getter for allowAbbreviatedCommands * Fixed SIGINT handling
This commit is contained in:
		@@ -8,16 +8,39 @@ require_once __DIR__."/../vendor/autoload.php";
 | 
			
		||||
$shell = new NoccyLabs\React\Shell\Shell();
 | 
			
		||||
 | 
			
		||||
$commands = new CommandHandler();
 | 
			
		||||
// Make it possible to use as few characters as possible as long as they match
 | 
			
		||||
// a single command. For example with the commands foo, bar and baz, foo could
 | 
			
		||||
// be executed with 'f', 'fo', or 'foo', while both bar and baz would require
 | 
			
		||||
// the full name.
 | 
			
		||||
$commands->setAllowAbbreviatedCommands(true);
 | 
			
		||||
// Add commands
 | 
			
		||||
$commands->add('help', function ($args, $shell) {
 | 
			
		||||
    $shell->write("This could be usage help :)\n");
 | 
			
		||||
    $shell->write("Exit by pressing ^C\n");
 | 
			
		||||
    $shell->write("Exit by typing quit or pressing ^C\n");
 | 
			
		||||
});
 | 
			
		||||
// This is how you terminate the shell. Obviously, you close it :) Using end()
 | 
			
		||||
// on the shell differs somewhat between ReactPHP; close() will exit with
 | 
			
		||||
// code 0, while end will exit with code 1, and print a friendly message.
 | 
			
		||||
$commands->add('quit', function ($args, $shell) {
 | 
			
		||||
    $shell->close();
 | 
			
		||||
});
 | 
			
		||||
// The command handler gets everything that was not matched. Resolve your own
 | 
			
		||||
// commands here, or print an error.
 | 
			
		||||
$commands->on('command', function ($command, $args, $shell) {
 | 
			
		||||
    $shell->write("Bad command '{$command}', try help.\n");
 | 
			
		||||
    $shell->write("Arguments passed: ".json_encode($args)."\n");
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// The prompt event is invoked before every full redraw. Call redrawPrompt()
 | 
			
		||||
// to trigger it manually. Set the prompt or the style here.
 | 
			
		||||
$shell->on('prompt', function ($shell) {
 | 
			
		||||
    $shell->setPrompt(">> ");
 | 
			
		||||
});
 | 
			
		||||
// This is where we hook the CommandHandler to the shell.
 | 
			
		||||
$shell->on('input', $commands);
 | 
			
		||||
// And finally, the end event gives you a chance to shut down cleanly. After
 | 
			
		||||
// returning from here, the shell will exit.
 | 
			
		||||
$shell->on('end', function ($shell) {
 | 
			
		||||
    $shell->write("Shutting down...\n");
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user