From cad529c1b56c6cfb22afc25383f561db978063b2 Mon Sep 17 00:00:00 2001 From: Yannik Enss Date: Tue, 15 Mar 2022 00:21:59 +0100 Subject: [PATCH] dont fail hard if commnd fails --- helpers/generate.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/helpers/generate.py b/helpers/generate.py index 815f47b..07d97c5 100755 --- a/helpers/generate.py +++ b/helpers/generate.py @@ -156,10 +156,16 @@ def conf2top(top): print("Warning: Error opening", top["file"], file=sys.stderr) if "command" in top: - body = subprocess.run(top["command"], shell=True, text=True, capture_output=True, check=args.allowfailcommand).stdout + try: + body = subprocess.run(top["command"], shell=True, text=True, capture_output=True, check=True).stdout + except subprocess.CalledProcessError as e: + print(f"Warning: Command for '{top['title']}' returned non-zero exit code, output not used") if "proto_command" in top: - protostub = subprocess.run(top["proto_command"], shell=True, text=True, capture_output=True, check=args.allowfailcommand).stdout + try: + protostub = subprocess.run(top["proto_command"], shell=True, text=True, capture_output=True, check=True).stdout + except subprocess.CalledProcessError as e: + print(f"Warning: Protocommand for '{top['title']}' returned non-zero exit code, output not used") return Top(top["title"], sender, body, protostub) @@ -180,6 +186,8 @@ def do_imports(entry): result[key] = do_imports(value) except KeyError: pass + except OSError as e: + print(f"Warning: reading {key} yielded error {e}") return result if isinstance(entry, list): @@ -223,7 +231,6 @@ if __name__ == "__main__": parser.add_argument("--send-mm", action="store_true") parser.add_argument("--send-mail", action="store_true") parser.add_argument("--save", action="store_true") - parser.add_argument("--allowfailcommand", action="store_false") parser.add_argument("--time") parser.add_argument("--date") args = parser.parse_args()