Michael Pasternak has uploaded a new change for review. Change subject: cli: adopt prompt messages to screen width ......................................................................
cli: adopt prompt messages to screen width Change-Id: Iae350c5e3b4e198d3e2cfe2e8bb10cd0d6cefb1c Signed-off-by: Michael pasternak <[email protected]> --- M src/ovirtcli/infrastructure/settings.py M src/ovirtcli/shell/engineshell.py 2 files changed, 44 insertions(+), 20 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine-cli refs/changes/16/21216/1 diff --git a/src/ovirtcli/infrastructure/settings.py b/src/ovirtcli/infrastructure/settings.py index 27a076c..bd5de26 100644 --- a/src/ovirtcli/infrastructure/settings.py +++ b/src/ovirtcli/infrastructure/settings.py @@ -23,27 +23,13 @@ PRODUCT = 'oVirt' INTRO = \ - """ - - ++++++++++++++++++++++++++++++++++++++++++ - - Welcome to %s shell - - ++++++++++++++++++++++++++++++++++++++++++ - - """ % PRODUCT + """Welcome to %s shell""" % PRODUCT DISCONNECTED_TEMPLATE = \ -""" - ======================================= - >>> disconnected from %s manager <<< - ======================================= - """ % PRODUCT +""">>> disconnected from %s manager <<<""" % PRODUCT CONNECTED_TEMPLATE = \ -"\n ==========================================\n" + \ -" >>> connected to " + PRODUCT + " manager %s <<<\n" + \ -" ==========================================\n\n" +">>> connected to " + PRODUCT + " manager %s <<<" settings = Settings.settings + [ ('ovirt-shell:name', str, '%s-shell' % PRODUCT), diff --git a/src/ovirtcli/shell/engineshell.py b/src/ovirtcli/shell/engineshell.py index 15ea353..69e05a4 100644 --- a/src/ovirtcli/shell/engineshell.py +++ b/src/ovirtcli/shell/engineshell.py @@ -60,7 +60,9 @@ ClearCmdShell, FileCmdShell, HistoryCmdShell, \ InfoCmdShell, SummaryCmdShell, CapabilitiesCmdShell): OFF_LINE_CONTENT = [ConnectCmdShell.NAME, HelpCommand.name, 'exit', "EOF"] + ############################# INIT ################################# + def __init__(self, context, parser, completekey='tab', stdin=None, stdout=None): cmd.Cmd.__init__(self, completekey=completekey, stdin=stdin, stdout=stdout) ConnectCmdShell.__init__(self, context, parser) @@ -99,7 +101,7 @@ cmd.Cmd.doc_header = self.context.settings.get('ovirt-shell:commands') cmd.Cmd.undoc_header = self.context.settings.get('ovirt-shell:misc_commands') - cmd.Cmd.intro = OvirtCliSettings.INTRO + cmd.Cmd.intro = self.__get_intro() readline.set_completer_delims(' ') signal.signal(signal.SIGINT, self.__handler) @@ -190,6 +192,33 @@ self.__last_status = -1 ########################### SYSTEM ################################# + def __get_intro(self): + """ + @return: the shell intro + """ + return self.__produce_screen_adapted_message( + text=OvirtCliSettings.INTRO, + border="+" + ) + + def __produce_screen_adapted_message(self, text, border, newline="\n\n"): + """ + produces (pretty) screen width adapted message + + @param text: text to prin + @param border: border to use (default is '+') + @param newline: new line separator + """ + offset = " " + space = " " + + termwidth = self.context.terminal._get_width() + introoffset = (termwidth / 2 - (len(text) / 2)) + borderoffset = (termwidth - 4) + + return offset + borderoffset * border + newline + \ + introoffset * space + text + newline + \ + offset + borderoffset * border + newline def __init_promt(self): self.__set_prompt(mode=PromptMode.Disconnected) @@ -242,7 +271,11 @@ self.context.history.enable() if not self.context.settings.get('ovirt-shell:execute_command'): self._print( - OvirtCliSettings.CONNECTED_TEMPLATE % \ + self.__produce_screen_adapted_message( + text=OvirtCliSettings.CONNECTED_TEMPLATE, + border='=', + newline='\n' + ) % \ self.context.settings.get('ovirt-shell:version') ) @@ -257,7 +290,12 @@ self.context.history.disable() if not self.context.settings.get('ovirt-shell:execute_command'): self._print( - OvirtCliSettings.DISCONNECTED_TEMPLATE + "\n" + \ + self.__produce_screen_adapted_message( + text=OvirtCliSettings.DISCONNECTED_TEMPLATE, + border='=', + newline='\n' + ) ) self.__set_prompt( mode=PromptMode.Disconnected -- To view, visit http://gerrit.ovirt.org/21216 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iae350c5e3b4e198d3e2cfe2e8bb10cd0d6cefb1c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine-cli Gerrit-Branch: master Gerrit-Owner: Michael Pasternak <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
