From 1b9efa7fc4cadf3784d07ebe612c276173aee7ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juho=20H=C3=A4m=C3=A4l=C3=A4inen?= Date: Thu, 17 Dec 2015 12:00:47 +0200 Subject: [PATCH] Fail a bit more nicely on errors with command line. Instead of having traceback print the error and exit with non-zero value. --- src/frontends/cmdline/loxodo.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/frontends/cmdline/loxodo.py b/src/frontends/cmdline/loxodo.py index 22d2df7..e6f327f 100755 --- a/src/frontends/cmdline/loxodo.py +++ b/src/frontends/cmdline/loxodo.py @@ -61,15 +61,20 @@ def open_vault(self): self.prompt = "[" + os.path.basename(self.vault_file_name) + "]> " except Vault.BadPasswordError: print "Bad password." - raise + return False except Vault.VaultVersionError: print "This is not a PasswordSafe V3 Vault." - raise + return False except Vault.VaultFormatError: print "Vault integrity check failed." + return False + except: + print "Unexpected error:", sys.exc_info()[0] raise print "... Done.\n" + return True + def postloop(self): print @@ -285,16 +290,16 @@ def main(argv): else: interactiveConsole.vault_file_name = args[0] - interactiveConsole.open_vault() - if options.do_ls: - interactiveConsole.do_ls("") - elif options.do_show: - interactiveConsole.do_show(options.do_show, options.echo, options.passwd) + if interactiveConsole.open_vault(): + if options.do_ls: + interactiveConsole.do_ls("") + elif options.do_show: + interactiveConsole.do_show(options.do_show, options.echo, options.passwd) + else: + interactiveConsole.cmdloop() + sys.exit(0) else: - interactiveConsole.cmdloop() - - sys.exit(0) - + sys.exit(1) main(sys.argv[1:])