Changed prompt management

This commit is contained in:
Christopher Vagnetoft 2016-04-29 15:49:10 +02:00
parent 06d879853c
commit 27af65af5e
2 changed files with 14 additions and 6 deletions

View File

@ -28,11 +28,14 @@ class MyShell extends Shell
echo "world\n\rthis\n\ris\n\ra\ntest\n\r";
});
$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()
@ -43,13 +46,12 @@ class MyShell extends Shell
$lt = $t + 5;
echo date("Y-m-d h:i:s")."\n";
}
$fg = ($this->seq % 7) + 1;
$this->setPromptStyle("3{$fg}");
}
protected function onCommand($buffer)
{
$this->seq++;
$this->updatePrompt();
parent::onCommand($buffer);
}

View File

@ -6,6 +6,7 @@ use NoccyLabs\Shell\LineRead;
abstract class Shell
{
protected $prompt;
protected $promptStyle;
@ -76,6 +77,11 @@ abstract class Shell
{
}
public function setPrompt($prompt)
{
$this->prompt = $prompt;
}
public function setPromptStyle($style)
{
$this->promptStyle = $style;
@ -95,7 +101,7 @@ abstract class Shell
$this->running = true;
do {
$lineRead->setPrompt($this->getPrompt(), $this->promptStyle);
$lineRead->setPrompt($this->prompt, $this->promptStyle);
$buffer = $lineRead->update();
if ($buffer == "\x03") {
$this->stop();