From 1d7217f5ca965a0b7ebab4505d269956f8c013f3 Mon Sep 17 00:00:00 2001 From: Mark Cornick Date: Wed, 17 Aug 2022 12:53:06 -0400 Subject: [PATCH] Handle common exceptions --- cue_to_meta.py | 61 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 19 deletions(-) diff --git a/cue_to_meta.py b/cue_to_meta.py index 835c7f0..f108dec 100755 --- a/cue_to_meta.py +++ b/cue_to_meta.py @@ -29,27 +29,50 @@ import sys cue_file = sys.argv[1] meta_file = re.sub(r"cue$", "meta", cue_file) -with open(cue_file) as f: - cue = f.readlines() +try: + with open(cue_file) as f: + cue = f.readlines() +except FileNotFoundError: + sys.stderr.write("{} not found\n".format(cue_file)) + sys.exit(1) +except IsADirectoryError: + sys.stderr.write("{} is a directory\n".format(cue_file)) + sys.exit(1) +except PermissionError: + sys.stderr.write("No permission to read {}\n".format(cue_file)) + sys.exit(1) +except OSError: + sys.stderr.write("OS error trying to read {}\n".format(cue_file)) + sys.exit(1) title = None performer = None timestamp = None -with open(meta_file, "w") as f: - for line in cue: - title_re = re.search(r'^ TITLE "(.*)"$', line) - performer_re = re.search(r'^ PERFORMER "(.*)"$', line) - index_re = re.search(r"^ INDEX 01 (.*)$", line) - if title_re: - title = title_re[1] - if performer_re: - performer = performer_re[1] - if index_re: - time_re = re.search(r"^(..):(..):..$", index_re[1]) - timestamp = "00{}{}".format(time_re[1], time_re[2]) - if title and performer and timestamp: - f.write("{}:{} - {}\n".format(timestamp, performer, title)) - title = None - performer = None - timestamp = None +try: + with open(meta_file, "w") as f: + for line in cue: + title_re = re.search(r'^ TITLE "(.*)"$', line) + performer_re = re.search(r'^ PERFORMER "(.*)"$', line) + index_re = re.search(r"^ INDEX 01 (.*)$", line) + if title_re: + title = title_re[1] + if performer_re: + performer = performer_re[1] + if index_re: + time_re = re.search(r"^(..):(..):..$", index_re[1]) + timestamp = "00{}{}".format(time_re[1], time_re[2]) + if title and performer and timestamp: + f.write("{}:{} - {}\n".format(timestamp, performer, title)) + title = None + performer = None + timestamp = None +except IsADirectoryError: + sys.stderr.write("{} is a directory\n".format(meta_file)) + sys.exit(1) +except PermissionError: + sys.stderr.write("No permission to write {}\n".format(meta_file)) + sys.exit(1) +except OSError: + sys.stderr.write("OS error trying to write {}\n".format(meta_file)) + sys.exit(1)