cqlsh: catch IOError on history loading Patch by Aleksey Yeschenko, reviewed by brandonwilliams for CASSANDRA-4669
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e7f28f30 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e7f28f30 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e7f28f30 Branch: refs/heads/cassandra-1.1 Commit: e7f28f30320bae4faa1092567d7b9b46f8947842 Parents: 4d600f3 Author: Brandon Williams <brandonwilli...@apache.org> Authored: Mon Sep 17 21:41:30 2012 -0500 Committer: Brandon Williams <brandonwilli...@apache.org> Committed: Mon Sep 17 21:41:30 2012 -0500 ---------------------------------------------------------------------- bin/cqlsh | 26 ++++++++++++++++++-------- 1 files changed, 18 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e7f28f30/bin/cqlsh ---------------------------------------------------------------------- diff --git a/bin/cqlsh b/bin/cqlsh index 3bef142..4e93db7 100755 --- a/bin/cqlsh +++ b/bin/cqlsh @@ -2687,16 +2687,28 @@ def setup_cqlruleset(cqlmodule): cqlruleset.completer_for(rulename, termname)(func) cqlruleset.commands_end_with_newline.update(my_commands_ending_with_newline) -def main(options, hostname, port): - setup_cqlruleset(options.cqlmodule) - - if os.path.exists(HISTORY) and readline is not None: - readline.read_history_file(HISTORY) +def init_history(): + if readline is not None: + try: + readline.read_history_file(HISTORY) + except IOError: + pass delims = readline.get_completer_delims() delims.replace("'", "") delims += '.' readline.set_completer_delims(delims) +def save_history(): + if readline is not None: + try: + readline.write_history_file(HISTORY) + except IOError: + pass + +def main(options, hostname, port): + setup_cqlruleset(options.cqlmodule) + init_history() + if options.file is None: stdin = None else: @@ -2731,9 +2743,7 @@ def main(options, hostname, port): shell.debug = True shell.cmdloop() - - if readline is not None: - readline.write_history_file(HISTORY) + save_history() if __name__ == '__main__': main(*read_options(sys.argv[1:], os.environ))