From 17d101b2f97edc8574528d5f05dd952921b67027 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 14 Mar 2022 14:21:17 +0530 Subject: bin: Handle message conditions. * bin/tissue: Import (rnrs exceptions). (main): Handle message conditions by printing them and exiting with failure. --- bin/tissue | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/bin/tissue b/bin/tissue index ff593c6..2e06ac4 100755 --- a/bin/tissue +++ b/bin/tissue @@ -20,6 +20,7 @@ ;;; along with tissue. If not, see . (import (rnrs conditions) + (rnrs exceptions) (rnrs io ports) (srfi srfi-1) (srfi srfi-26) @@ -368,17 +369,21 @@ To get usage information for one of these sub-commands, run ((_ (or "-h" "--help")) (print-usage)) ((_ command args ...) - (apply (match command - ("news" tissue-news) - ("list" tissue-list) - ("edit" tissue-edit) - ("show" tissue-show) - (invalid-command - (format (current-error-port) "Invalid command `~a'~%~%" - invalid-command) - (print-usage) - (exit #f))) - args)) + (guard (c ((message-condition? c) + (display (condition-message c) (current-error-port)) + (newline (current-error-port)) + (exit #f))) + (apply (match command + ("news" tissue-news) + ("list" tissue-list) + ("edit" tissue-edit) + ("show" tissue-show) + (invalid-command + (format (current-error-port) "Invalid command `~a'~%~%" + invalid-command) + (print-usage) + (exit #f))) + args))) ;; tissue is an alias for `tissue list' ((_) (tissue-list)))) -- cgit v1.2.3