2008-01-16 Benny Malengier <benny.malengier@gramps-project.org>

* src/ArgHandler.py: don't crash arghandler on wrong input #1592
	* src/const.py.in: Add -h and --help so those work for non gnome users



svn: r9853
This commit is contained in:
Benny Malengier 2008-01-16 20:23:20 +00:00
parent 93395e747a
commit 4172c30406
3 changed files with 40 additions and 8 deletions

View File

@ -1,3 +1,7 @@
2008-01-16 Benny Malengier <benny.malengier@gramps-project.org>
* src/ArgHandler.py: don't crash arghandler on wrong input #1592
* src/const.py.in: Add -h and --help so those work for non gnome users
2008-01-15 Raphael Ackermann <raphael.ackermann@gmail.com> 2008-01-15 Raphael Ackermann <raphael.ackermann@gmail.com>
* data/man/nl/Makefile.am: added doc * data/man/nl/Makefile.am: added doc
* configure.in: added sv for swedish makefile * configure.in: added sv for swedish makefile

View File

@ -66,6 +66,25 @@ IMPORT_TYPES = (const.APP_GRAMPS_XML, const.APP_GEDCOM,
const.APP_GRAMPS_PKG, const.APP_GENEWEB, const.APP_GRAMPS_PKG, const.APP_GENEWEB,
const.APP_GRAMPS) const.APP_GRAMPS)
_help = """
Usage: gramps.py [OPTION...]
--load-modules=MODULE1,MODULE2,... Dynamic modules to load
Help options
-?, --help Show this help message
--usage Display brief usage message
Application options
-O, --open=FAMILY_TREE Open family tree
-i, --import=FILENAME Import file
-o, --output=FILENAME Write file
-f, --format=FORMAT Specify format
-a, --action=ACTION Specify action
-p, --options=OPTIONS_STRING Specify options
-d, --debug=LOGGER_NAME Enable debug logs
"""
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# ArgHandler # ArgHandler
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -110,6 +129,7 @@ class ArgHandler:
self.imports = [] self.imports = []
self.imp_db_path = None self.imp_db_path = None
self.list = False self.list = False
self.help = False
self.parse_args() self.parse_args()
@ -120,7 +140,7 @@ class ArgHandler:
""" """
Fill in lists with open, exports, imports, and actions options. Fill in lists with open, exports, imports, and actions options.
Any parsing errors lead to abort via sys.exit(1). Any parsing errors lead to abort
Possible: Possible:
1/ Just the family tree (name or database dir) 1/ Just the family tree (name or database dir)
@ -136,10 +156,13 @@ class ArgHandler:
try: try:
options, leftargs = getopt.getopt(self.args[1:], options, leftargs = getopt.getopt(self.args[1:],
const.SHORTOPTS, const.LONGOPTS) const.SHORTOPTS, const.LONGOPTS)
except getopt.GetoptError: except getopt.GetoptError, msg:
print msg
# return without filling anything if we could not parse the args # return without filling anything if we could not parse the args
print "Error parsing arguments: %s " % self.args[1:] print "Error parsing the arguments: %s " % self.args[1:]
sys.exit(1) print "Type gramps --help for an overview of commands, or ",
print "read manual pages."
sys.exit(0)
if leftargs: if leftargs:
# if there were an argument without option, # if there were an argument without option,
@ -278,6 +301,8 @@ class ArgHandler:
logger.setLevel(logging.DEBUG) logger.setLevel(logging.DEBUG)
elif option in ('-l',): elif option in ('-l',):
self.list = True self.list = True
elif option in ('-h', '-?', '--help'):
self.help = True
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# Determine the need for GUI # Determine the need for GUI
@ -318,6 +343,9 @@ class ArgHandler:
for name, dirname in dbman.family_tree_list(): for name, dirname in dbman.family_tree_list():
print dirname, ', with name ', name print dirname, ', with name ', name
sys.exit(0) sys.exit(0)
if self.help:
print _help
sys.exit(0)
if self.open_gui: if self.open_gui:
# Filename was given as gramps FILENAME. # Filename was given as gramps FILENAME.
# Open a session with that file. Forget the rest of given arguments # Open a session with that file. Forget the rest of given arguments
@ -365,7 +393,7 @@ class ArgHandler:
_('Not a valid Family tree given to open\n\n' _('Not a valid Family tree given to open\n\n'
)) ))
print "Exiting..." print "Exiting..."
sys.exit(1) sys.exit(0)
if success: if success:
# Add the file to the recent items # Add the file to the recent items
path = os.path.join(filename, "name.txt") path = os.path.join(filename, "name.txt")
@ -401,7 +429,7 @@ class ArgHandler:
else: else:
print "Only Family trees can be opened." print "Only Family trees can be opened."
print "Exiting..." print "Exiting..."
sys.exit(1) sys.exit(0)
try: try:
self.vm.open_activate(filename) self.vm.open_activate(filename)

View File

@ -230,5 +230,5 @@ LONGOPTS = [
"version", "version",
] ]
SHORTOPTS = "O:i:o:f:a:p:d:?:l" SHORTOPTS = "O:i:o:f:a:p:d:lh?"