CC-2659: airtime-import: displaying help text on all exception

- it's displaying help text on all exception and unknown errors
This commit is contained in:
James 2011-09-09 16:12:21 -04:00
parent 8239588a95
commit 5d8f87208b

View file

@ -84,10 +84,8 @@ def checkOtherOption(args):
def errorIfMultipleOption(args, msg=''): def errorIfMultipleOption(args, msg=''):
if(checkOtherOption(args)): if(checkOtherOption(args)):
if(msg != ''): if(msg != ''):
printHelp()
raise OptionValueError(msg) raise OptionValueError(msg)
else: else:
printHelp()
raise OptionValueError("This option cannot be combined with other options") raise OptionValueError("This option cannot be combined with other options")
def printHelp(): def printHelp():
@ -123,7 +121,6 @@ There are two ways to import audio files into Airtime:
def CopyAction(option, opt, value, parser): def CopyAction(option, opt, value, parser):
errorIfMultipleOption(parser.rargs) errorIfMultipleOption(parser.rargs)
if(len(parser.rargs) == 0 ): if(len(parser.rargs) == 0 ):
printHelp()
raise OptionValueError("No argument found. This option requires at least one argument.") raise OptionValueError("No argument found. This option requires at least one argument.")
stor = helper_get_stor_dir() stor = helper_get_stor_dir()
if(stor is None): if(stor is None):
@ -134,7 +131,6 @@ def CopyAction(option, opt, value, parser):
def MoveAction(option, opt, value, parser): def MoveAction(option, opt, value, parser):
errorIfMultipleOption(parser.rargs) errorIfMultipleOption(parser.rargs)
if(len(parser.rargs) == 0 ): if(len(parser.rargs) == 0 ):
printHelp()
raise OptionValueError("No argument found. This option requires at least one argument.") raise OptionValueError("No argument found. This option requires at least one argument.")
stor = helper_get_stor_dir() stor = helper_get_stor_dir()
if(stor is None): if(stor is None):
@ -145,10 +141,8 @@ def MoveAction(option, opt, value, parser):
def WatchAddAction(option, opt, value, parser): def WatchAddAction(option, opt, value, parser):
errorIfMultipleOption(parser.rargs) errorIfMultipleOption(parser.rargs)
if(len(parser.rargs) > 1): if(len(parser.rargs) > 1):
printHelp()
raise OptionValueError("Too many arguments. This option requires exactly one argument.") raise OptionValueError("Too many arguments. This option requires exactly one argument.")
elif(len(parser.rargs) == 0 ): elif(len(parser.rargs) == 0 ):
printHelp()
raise OptionValueError("No argument found. This option requires exactly one argument.") raise OptionValueError("No argument found. This option requires exactly one argument.")
path = parser.rargs[0] path = parser.rargs[0]
if (path[0] == "/" or path[0] == "~"): if (path[0] == "/" or path[0] == "~"):
@ -171,7 +165,6 @@ def WatchAddAction(option, opt, value, parser):
def WatchListAction(option, opt, value, parser): def WatchListAction(option, opt, value, parser):
errorIfMultipleOption(parser.rargs) errorIfMultipleOption(parser.rargs)
if(len(parser.rargs) > 0): if(len(parser.rargs) > 0):
printHelp()
raise OptionValueError("This option doesn't take any arguments.") raise OptionValueError("This option doesn't take any arguments.")
res = api_client.list_all_watched_dirs() res = api_client.list_all_watched_dirs()
if(res is None): if(res is None):
@ -188,10 +181,8 @@ def WatchListAction(option, opt, value, parser):
def WatchRemoveAction(option, opt, value, parser): def WatchRemoveAction(option, opt, value, parser):
errorIfMultipleOption(parser.rargs) errorIfMultipleOption(parser.rargs)
if(len(parser.rargs) > 1): if(len(parser.rargs) > 1):
printHelp()
raise OptionValueError("Too many arguments. This option requires exactly one argument.") raise OptionValueError("Too many arguments. This option requires exactly one argument.")
elif(len(parser.rargs) == 0 ): elif(len(parser.rargs) == 0 ):
printHelp()
raise OptionValueError("No argument found. This option requires exactly one argument.") raise OptionValueError("No argument found. This option requires exactly one argument.")
path = parser.rargs[0] path = parser.rargs[0]
if (path[0] == "/" or path[0] == "~"): if (path[0] == "/" or path[0] == "~"):
@ -234,10 +225,8 @@ def StorageSetAction(option, opt, value, parser):
sys.exit(1) sys.exit(1)
if(len(parser.rargs) > 1): if(len(parser.rargs) > 1):
printHelp()
raise OptionValueError("Too many arguments. This option requires exactly one argument.") raise OptionValueError("Too many arguments. This option requires exactly one argument.")
elif(len(parser.rargs) == 0 ): elif(len(parser.rargs) == 0 ):
printHelp()
raise OptionValueError("No argument found. This option requires exactly one argument.") raise OptionValueError("No argument found. This option requires exactly one argument.")
path = parser.rargs[0] path = parser.rargs[0]
@ -261,10 +250,13 @@ def StorageSetAction(option, opt, value, parser):
def StorageGetAction(option, opt, value, parser): def StorageGetAction(option, opt, value, parser):
errorIfMultipleOption(parser.rargs) errorIfMultipleOption(parser.rargs)
if(len(parser.rargs) > 0): if(len(parser.rargs) > 0):
printHelp()
raise OptionValueError("This option does not take any arguments.") raise OptionValueError("This option does not take any arguments.")
print helper_get_stor_dir() print helper_get_stor_dir()
class OptionValueError(RuntimeError):
def __init__(self, msg):
self.msg = msg
usage = """[-c|--copy FILE/DIR [FILE/DIR...]] [-m|--move FILE/DIR [FILE/DIR...]] usage = """[-c|--copy FILE/DIR [FILE/DIR...]] [-m|--move FILE/DIR [FILE/DIR...]]
[--watch-add DIR] [--watch-list] [--watch-remove DIR] [--watch-add DIR] [--watch-list] [--watch-remove DIR]
[--storage-dir-set DIR] [--storage-dir-get]""" [--storage-dir-set DIR] [--storage-dir-get]"""
@ -294,7 +286,16 @@ if(len(sys.argv) == 1 or '-' not in sys.argv[1]):
printHelp() printHelp()
sys.exit() sys.exit()
try:
(option, args) = parser.parse_args() (option, args) = parser.parse_args()
except Exception, e:
printHelp()
print "Error: "+e.msg
sys.exit()
except SystemExit:
printHelp()
sys.exit()
if option.help: if option.help:
printHelp() printHelp()
sys.exit() sys.exit()