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

Reply via email to