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"; 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);
} }

View File

@ -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();