Changed prompt management
This commit is contained in:
		@@ -28,11 +28,14 @@ class MyShell extends Shell
 | 
				
			|||||||
            echo "world\n\rthis\n\ris\n\ra\ntest\n\r";
 | 
					            echo "world\n\rthis\n\ris\n\ra\ntest\n\r";
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        $this->addCommand(new MyCommand());
 | 
					        $this->addCommand(new MyCommand());
 | 
				
			||||||
 | 
					        $this->updatePrompt();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    protected function getPrompt()
 | 
					    protected function updatePrompt()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return "test[{$this->seq}]: ";
 | 
					        $this->setPrompt("test[{$this->seq}]: ");
 | 
				
			||||||
 | 
					        $fg = ($this->seq % 7) + 1;
 | 
				
			||||||
 | 
					        $this->setPromptStyle("3{$fg}");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected function onUpdate()
 | 
					    protected function onUpdate()
 | 
				
			||||||
@@ -43,13 +46,12 @@ class MyShell extends Shell
 | 
				
			|||||||
            $lt = $t + 5;
 | 
					            $lt = $t + 5;
 | 
				
			||||||
            echo date("Y-m-d h:i:s")."\n";
 | 
					            echo date("Y-m-d h:i:s")."\n";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        $fg = ($this->seq % 7) + 1;
 | 
					 | 
				
			||||||
        $this->setPromptStyle("3{$fg}");
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    protected function onCommand($buffer)
 | 
					    protected function onCommand($buffer)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $this->seq++;
 | 
					        $this->seq++;
 | 
				
			||||||
 | 
					        $this->updatePrompt();
 | 
				
			||||||
        parent::onCommand($buffer);
 | 
					        parent::onCommand($buffer);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ use NoccyLabs\Shell\LineRead;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
abstract class Shell
 | 
					abstract class Shell
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    protected $prompt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected $promptStyle;
 | 
					    protected $promptStyle;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
@@ -76,6 +77,11 @@ abstract class Shell
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function setPrompt($prompt)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->prompt = $prompt;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function setPromptStyle($style)
 | 
					    public function setPromptStyle($style)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $this->promptStyle = $style;
 | 
					        $this->promptStyle = $style;
 | 
				
			||||||
@@ -95,7 +101,7 @@ abstract class Shell
 | 
				
			|||||||
        $this->running = true;
 | 
					        $this->running = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        do {
 | 
					        do {
 | 
				
			||||||
            $lineRead->setPrompt($this->getPrompt(), $this->promptStyle);
 | 
					            $lineRead->setPrompt($this->prompt, $this->promptStyle);
 | 
				
			||||||
            $buffer = $lineRead->update();
 | 
					            $buffer = $lineRead->update();
 | 
				
			||||||
            if ($buffer == "\x03") {
 | 
					            if ($buffer == "\x03") {
 | 
				
			||||||
                $this->stop();
 | 
					                $this->stop();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user