Cleanup of CLI output (sorts lists, gives additional help, straight columns) and don't crash on non-gui Options
svn: r16312
This commit is contained in:
parent
f8b99a00b2
commit
320cbb0308
@ -302,16 +302,16 @@ class ArgHandler(object):
|
||||
|
||||
if self.list:
|
||||
print 'List of known family trees in your database path\n'
|
||||
for name, dirname in self.dbman.family_tree_list():
|
||||
print dirname, ', with name ', name.encode(sys.getfilesystemencoding())
|
||||
for name, dirname in sorted(self.dbman.family_tree_list(), key=lambda pair: pair[0].lower()):
|
||||
print "%s with name \"%s\"" % (dirname, name.encode(sys.getfilesystemencoding()))
|
||||
sys.exit(0)
|
||||
|
||||
if self.list_more:
|
||||
print 'Gramps Family Trees:'
|
||||
summary_list = self.dbman.family_tree_summary()
|
||||
for summary in summary_list:
|
||||
for summary in sorted(summary_list, key=lambda summary: summary["Family tree"].lower()):
|
||||
print "Family Tree \"%s\":" % summary["Family tree"]
|
||||
for item in summary:
|
||||
for item in sorted(summary):
|
||||
if item != "Family tree":
|
||||
print " %s: %s" % (item, summary[item])
|
||||
sys.exit(0)
|
||||
@ -497,7 +497,7 @@ class ArgHandler(object):
|
||||
msg = "Report name not given. Please use one of [-p|--options] name=reportname."
|
||||
|
||||
print >> sys.stderr, "%s\n Available names are:" % msg
|
||||
for pdata in _cl_list:
|
||||
for pdata in sorted(_cl_list, key= lambda pdata: pdata.id.lower()):
|
||||
# Print cli report name ([item[0]) and GUI report name (item[4])
|
||||
if len(pdata.id) <= 25:
|
||||
print >> sys.stderr, \
|
||||
@ -536,7 +536,7 @@ class ArgHandler(object):
|
||||
msg = "Tool name not given. Please use one of [-p|--options] name=toolname."
|
||||
|
||||
print >> sys.stderr, "%s\n Available names are:" % msg
|
||||
for pdata in _cli_tool_list:
|
||||
for pdata in sorted(_cli_tool_list, key=lambda pdata: pdata.id.lower()):
|
||||
# Print cli report name ([item[0]) and GUI report name (item[4])
|
||||
if len(pdata.id) <= 25:
|
||||
print >> sys.stderr, \
|
||||
|
@ -52,7 +52,7 @@ from gen.plug.docgen import (StyleSheet, StyleSheetList, PaperStyle,
|
||||
from gen.plug.menu import (FamilyOption, PersonOption, NoteOption,
|
||||
MediaOption, PersonListOption, NumberOption,
|
||||
BooleanOption, DestinationOption, StringOption,
|
||||
TextOption, EnumeratedListOption)
|
||||
TextOption, EnumeratedListOption, Option)
|
||||
from gen.display.name import displayer as name_displayer
|
||||
from Errors import ReportError
|
||||
from gen.plug.report import (CATEGORY_TEXT, CATEGORY_DRAW, CATEGORY_BOOK,
|
||||
@ -289,8 +289,12 @@ class CommandLineReport(object):
|
||||
for (value, description) in option.get_items():
|
||||
ilist.append("%s\t%s" % (value, description))
|
||||
self.options_help[name].append(ilist)
|
||||
elif isinstance(option, Option):
|
||||
self.options_help[name].append(option.get_help())
|
||||
else:
|
||||
print "Unknown option: ", option
|
||||
print " Valid options are:", ", ".join(self.options_dict.keys())
|
||||
print " Use 'show=option' to see description and acceptable values"
|
||||
|
||||
def parse_options(self):
|
||||
"""
|
||||
@ -313,6 +317,8 @@ class CommandLineReport(object):
|
||||
|
||||
else:
|
||||
print "Ignoring unknown option: %s" % opt
|
||||
print " Valid options are:", ", ".join(self.options_dict.keys())
|
||||
print " Use 'show=option' to see description and acceptable values"
|
||||
|
||||
self.option_class.handler.output = self.options_dict['of']
|
||||
|
||||
@ -369,11 +375,11 @@ class CommandLineReport(object):
|
||||
return
|
||||
elif self.show == 'all':
|
||||
print " Available options:"
|
||||
for key in self.options_dict:
|
||||
for key in sorted(self.options_dict.keys()):
|
||||
if key in self.options_help:
|
||||
opt = self.options_help[key]
|
||||
# Make the output nicer to read, assume that tab has 8 spaces
|
||||
tabs = '\t' if len(key) < 10 else '\t'*2
|
||||
tabs = '\t\t' if len(key) < 10 else '\t'
|
||||
optmsg = " %s%s%s (%s)" % (key, tabs, opt[1], opt[0])
|
||||
print optmsg.encode(sys.getfilesystemencoding())
|
||||
else:
|
||||
@ -382,13 +388,13 @@ class CommandLineReport(object):
|
||||
print " Use 'show=option' to see description and acceptable values"
|
||||
elif self.show in self.options_help:
|
||||
opt = self.options_help[self.show]
|
||||
tabs = '\t' if len(self.show) < 10 else '\t'*2
|
||||
tabs = '\t\t' if len(self.show) < 10 else '\t'
|
||||
print ' %s%s%s%s' % (self.show, tabs, opt[0], opt[1])
|
||||
print " Available values are:"
|
||||
vals = opt[2]
|
||||
if isinstance(vals, (list, tuple)):
|
||||
for val in vals:
|
||||
optmsg = " %s" % key
|
||||
optmsg = " %s" % val
|
||||
print optmsg.encode(sys.getfilesystemencoding())
|
||||
else:
|
||||
optmsg = " %s" % opt[2]
|
||||
|
Loading…
Reference in New Issue
Block a user