diff --git a/cccli/cli.py b/cccli/cli.py index 1baa3f24b16d7c5184bb9e8101c319f483e47005..91225700ad176fdf4f7636c0e737be5ff1f4a25e 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 51accd8a938fb6c8309f863e2df6a43c77b0a339..7cb18cd5c6fb7efa20b5b5d9f226daad0654306e 100644 --- a/cccli/printer.py +++ b/cccli/printer.py @@ -39,6 +39,8 @@ color = { # others "light": "\033[1m", "reset": "\033[m", + "[": "\001", + "]": "\002", }