55 lines
		
	
	
		
			912 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			912 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								require_once __DIR__."/../vendor/autoload.php";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use NoccyLabs\Shell\Shell;
							 | 
						||
| 
								 | 
							
								use NoccyLabs\Shell\Command;
							 | 
						||
| 
								 | 
							
								use NoccyLabs\Shell\Context;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class MyContext extends Context
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @command testme
							 | 
						||
| 
								 | 
							
								     * @args
							 | 
						||
| 
								 | 
							
								     * @help Useful test!
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function test()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class MyShell extends Shell
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected $seq = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function configure()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $context = new MyContext();
							 | 
						||
| 
								 | 
							
								        $this->pushContext($context);
							 | 
						||
| 
								 | 
							
								        $this->updatePrompt();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->addTimer(5000, function () {
							 | 
						||
| 
								 | 
							
								            echo "5 seconds\n";
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    protected function updatePrompt()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->setPrompt("test[{$this->seq}]: ");
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    protected function onCommand($buffer)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->seq++;
							 | 
						||
| 
								 | 
							
								        $this->updatePrompt();
							 | 
						||
| 
								 | 
							
								        parent::onCommand($buffer);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$myShell = new MyShell();
							 | 
						||
| 
								 | 
							
								$myShell->run();
							 | 
						||
| 
								 | 
							
								echo "Exiting\n";
							 |