WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [XM] Text wrapping fix, xm create --help_

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [XM] Text wrapping fix, xm create --help_config fix.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 22 Sep 2006 15:40:14 +0000
Delivery-date: Fri, 22 Sep 2006 08:41:08 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User atse@xxxxxxxxxxxxxxxxxxxxxxxx
# Node ID a49f9c33aa9372a86f79a54e12b24d1de82db3b7
# Parent  d4b99e615af25d510302ee3bac552621a19123a1
[XM] Text wrapping fix, xm create --help_config fix.

* Fix text wrap so it doesn't chop off last word in help message for
  certain cases.
* Fix handling of xm create --help_config
* Remove redundant gopts.usage() call.

Signed-off-by: Alastair Tse <atse@xxxxxxxxxxxxx>
---
 tools/python/xen/xm/create.py   |   12 +++++-----
 tools/python/xen/xm/opts.py     |   46 ++++++++++++++++++++--------------------
 tools/python/xen/xm/shutdown.py |    1 
 3 files changed, 29 insertions(+), 30 deletions(-)

diff -r d4b99e615af2 -r a49f9c33aa93 tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py     Fri Sep 22 14:57:19 2006 +0100
+++ b/tools/python/xen/xm/create.py     Fri Sep 22 15:06:00 2006 +0100
@@ -56,7 +56,8 @@ gopts.opt('help', short='h',
 
 gopts.opt('help_config',
           fn=set_true, default=0,
-          use="Print help for the configuration script.")
+          use="Print the available configuration variables (vars) for the "
+          "configuration script.")
 
 gopts.opt('quiet', short='q',
           fn=set_true, default=0,
@@ -87,7 +88,7 @@ gopts.opt('config', short='F', val='FILE
           use="Domain configuration to use (SXP).\n"
           "SXP is the underlying configuration format used by Xen.\n"
           "SXP configurations can be hand-written or generated from Python "
-          "configuration scripts, using the -n (dryrun) option to print\n"
+          "configuration scripts, using the -n (dryrun) option to print "
           "the configuration.")
 
 gopts.opt('dryrun', short='n',
@@ -1014,11 +1015,10 @@ def parseCommandLine(argv):
 def parseCommandLine(argv):
     gopts.reset()
     args = gopts.parse(argv)
-    if gopts.vals.help:
-        gopts.usage()
+
     if gopts.vals.help or gopts.vals.help_config:
-        gopts.load_defconfig(help=1)
-    if gopts.vals.help or gopts.vals.help_config:
+        if gopts.vals.help_config:
+            print gopts.val_usage()
         return (None, None)
 
     if not gopts.vals.display:
diff -r d4b99e615af2 -r a49f9c33aa93 tools/python/xen/xm/opts.py
--- a/tools/python/xen/xm/opts.py       Fri Sep 22 14:57:19 2006 +0100
+++ b/tools/python/xen/xm/opts.py       Fri Sep 22 15:06:00 2006 +0100
@@ -24,36 +24,32 @@ import sys
 import sys
 import types
 
+def _line_wrap(text, width = 70):
+    lines = []
+    current_line = ''
+    words = text.strip().split()
+    while words:
+        word = words.pop(0)
+        if len(current_line) + len(word) + 1 < width:
+            current_line += word + ' '
+        else:
+            lines.append(current_line.strip())
+            current_line = word + ' '
+            
+    if current_line:
+        lines.append(current_line.strip())
+    return lines
+
 def wrap(text, width = 70):
     """ Really basic textwrap. Useful because textwrap is not available
     for Python 2.2, and textwrap.wrap ignores newlines in Python 2.3+.
     """
-    import string
-    
     if len(text) < width:
         return [text]
     
     lines = []
     for line in text.split('\n'):
-        line = line.strip()
-        if len(line) < width:
-            lines.append(line)
-            continue
-        
-        pos = 0
-        while pos <= len(line):
-            wline = line[pos:pos+width].strip()
-            if len(wline) < 2:
-                break
-            
-            if wline[-1] in tuple(string.punctuation):
-                pos += width
-            else:
-                lastword = wline.split()[-1]
-                wline = wline[:-len(lastword)]
-                pos += width - len(lastword)
-            lines.append(wline)
-                
+        lines += _line_wrap(line, width)
     return lines
 
 class OptionError(Exception):
@@ -299,18 +295,22 @@ class Opts:
 
     def __str__(self):
         options = [s for s in self.options if s.optkeys[0][0] == '-']
-        optvals = [s for s in self.options if s.optkeys[0][0] != '-']
         output = ''
         if options:
             output += '\nOptions:\n\n'
             output += '\n'.join([str(o) for o in options])
             output += '\n'
+        return output
+
+    def val_usage(self):
+        optvals = [s for s in self.options if s.optkeys[0][0] != '-']
+        output = ''
         if optvals:
             output += '\nValues:\n\n'
             output += '\n'.join([str(o) for o in optvals])
             output += '\n'
         return output
-
+    
     def opt(self, name, **args):
         """Add an option.
 
diff -r d4b99e615af2 -r a49f9c33aa93 tools/python/xen/xm/shutdown.py
--- a/tools/python/xen/xm/shutdown.py   Fri Sep 22 14:57:19 2006 +0100
+++ b/tools/python/xen/xm/shutdown.py   Fri Sep 22 15:06:00 2006 +0100
@@ -120,7 +120,6 @@ def main(argv):
     opts = gopts
     args = opts.parse(argv)
     if opts.vals.help:
-        opts.usage()
         return
     if opts.vals.all:
         main_all(opts, args)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [XM] Text wrapping fix, xm create --help_config fix., Xen patchbot-unstable <=