From 5fbc32d48b1378ae5a95a2afbec02670bcea8239 Mon Sep 17 00:00:00 2001 From: Seblu Date: Tue, 4 Jan 2011 14:57:38 +0100 Subject: [PATCH] fix prompt editon in expert mode --- cccli/cli.py | 17 +++++++++++------ cccli/printer.py | 2 ++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cccli/cli.py b/cccli/cli.py index 1baa3f2..9122570 100644 --- a/cccli/cli.py +++ b/cccli/cli.py @@ -24,9 +24,9 @@ from sjrpc.core.exceptions import * class Cli(object): def __init__(self, settings): self.settings = settings - self.prompt = "> " self.rpc = None self.alias = Alias() + self.prompt = "" def start(self, line=""): '''Start a CLI''' @@ -50,6 +50,15 @@ class Cli(object): self._connect() # auth self._auth() + # set prompt + if self.interactive: + self.prompt = "%s%s%s%s>%s%s%s "%(color["["], + color["light"], + color["]"], + self.settings["login"], + color["["], + color["reset"], + color["]"]) # parsing self._parse() # save history @@ -84,14 +93,10 @@ class Cli(object): def _parse(self): '''Parse a line''' - if self.interactive: - prompt = "\001%s\002%s>\001%s\002 "%(color["light"],self.settings["login"],color["reset"]) - else: - prompt = "" while True: try: try: - argv = shlex.split(self.printer.getline(prompt), comments=True) + argv = shlex.split(self.printer.getline(self.prompt), comments=True) except ValueError as e: self.printer.error("Lexer: %s"%str(e)) continue diff --git a/cccli/printer.py b/cccli/printer.py index 51accd8..7cb18cd 100644 --- a/cccli/printer.py +++ b/cccli/printer.py @@ -39,6 +39,8 @@ color = { # others "light": "\033[1m", "reset": "\033[m", + "[": "\001", + "]": "\002", } -- GitLab