From 05a792a120227f9ce294866dfd1494e059968335 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 15 Mar 2022 15:04:02 +0530 Subject: tissue: Use more specific &issue-file-not-found-error. * bin/tissue: Do not import (rnrs conditions). Import (tissue conditions). (tissue-edit, tissue-show): Raise &issue-file-not-found-error instead of &message-condition. (print-usage): Handle &issue-file-not-found-error instead of &message-condition. * tissue/web.scm: Do not import (rnrs exceptions). Import (tissue conditions). (build-website): Raise &issue-file-not-found-error instead of &message-condition. --- bin/tissue | 16 ++++++++-------- tissue/web.scm | 5 +++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/bin/tissue b/bin/tissue index e0abcda..e399e64 100755 --- a/bin/tissue +++ b/bin/tissue @@ -19,8 +19,7 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with tissue. If not, see . -(import (rnrs conditions) - (rnrs exceptions) +(import (rnrs exceptions) (rnrs io ports) (srfi srfi-1) (srfi srfi-26) @@ -30,6 +29,7 @@ (ice-9 match) (ice-9 popen) (ice-9 regex) + (tissue conditions) (tissue issue) (tissue utils)) @@ -286,8 +286,7 @@ export EDITOR=emacsclient")) ;; committed. Therefore, only read the file if it exists. (if (file-exists? issue-file) (invoke (getenv "EDITOR") issue-file) - (raise (make-message-condition - (string-append "No such file or directory: " issue-file)))))))) + (raise (issue-file-not-found-error issue-file))))))) (define tissue-show (match-lambda* @@ -344,8 +343,7 @@ Show the text of issue #ISSUE-NUMBER. (const #t) get-line-dos-or-unix port))) - (raise (make-message-condition - (string-append "No such file or directory: " issue-file)))))))) + (raise (issue-file-not-found-error issue-file))))))) (define (print-usage) (format #t "Usage: ~a COMMAND [OPTIONS] [ARGS] @@ -369,8 +367,10 @@ To get usage information for one of these sub-commands, run ((_ (or "-h" "--help")) (print-usage)) ((_ command args ...) - (guard (c ((message-condition? c) - (display (condition-message c) (current-error-port)) + (guard (c ((issue-file-not-found-error? c) + (display (string-append "No such file or directory: " + (issue-file-not-found-error-issue-file c)) + (current-error-port)) (newline (current-error-port)) (exit #f))) (apply (match command diff --git a/tissue/web.scm b/tissue/web.scm index 79568e6..92d33a6 100644 --- a/tissue/web.scm +++ b/tissue/web.scm @@ -17,6 +17,7 @@ ;;; along with tissue. If not, see . (define-module (tissue web) + #:use-module (rnrs exceptions) #:use-module (rnrs io ports) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -31,6 +32,7 @@ #:use-module (skribilo utils keywords) #:use-module (skribilo writer) #:use-module (sxml simple) + #:use-module (tissue conditions) #:use-module (tissue issue) #:use-module (tissue utils) #:export (issue-listing @@ -245,8 +247,7 @@ issue listings are not generated." 'gemtext) ((string-suffix? ".skb" input-file) 'skribe))))))) - (raise (make-message-condition - (string-append "No such file or directory: " input-file)))) + (raise (issue-file-not-found-error input-file))) (find-engine 'html))) (copy-file input-file output-file)))))) rcons get-line port)) -- cgit v1.2.3