28 lines
		
	
	
		
			550 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			550 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								require_once __DIR__."/../vendor/autoload.php";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use NoccyLabs\Shell\Shell;
							 | 
						||
| 
								 | 
							
								use NoccyLabs\Shell\Context;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$shell = new Shell();
							 | 
						||
| 
								 | 
							
								$shell->addListener("prompt", function ($event, $shell) {
							 | 
						||
| 
								 | 
							
								    $name = $shell->getContextPath();
							 | 
						||
| 
								 | 
							
								    $shell->setPrompt("shell{$name}> ");
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$root = new Context();
							 | 
						||
| 
								 | 
							
								$root->addCommand("test", function () {
							 | 
						||
| 
								 | 
							
								    echo "It works!\n";
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								$root->addCommand("context", function ($name) {
							 | 
						||
| 
								 | 
							
								    $context = new Context($name);
							 | 
						||
| 
								 | 
							
								    $context->name = $name;
							 | 
						||
| 
								 | 
							
								    return $context;
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								$shell->pushContext($root);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$shell->run();
							 | 
						||
| 
								 | 
							
								
							 |