From ad3d36b0b781951d9607f51e92829e2157eee76e Mon Sep 17 00:00:00 2001 From: Jaidyn Levesque <10477760+JadedCtrl@users.noreply.github.com> Date: Sat, 17 Dec 2022 13:43:13 -0600 Subject: [PATCH] Adds --outdir option (maildir output) to UNIX client --- feedsnake.scm | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/feedsnake.scm b/feedsnake.scm index 6925614..935d9cd 100644 --- a/feedsnake.scm +++ b/feedsnake.scm @@ -364,19 +364,14 @@ '((help "Print a usage message" (single-char #\h)) -;; (outdir -;; "Output directory, used for multi-file templates (e.g., maildir)" -;; (single-char #\d) -;; (value (required DIR))) + (outdir + "Output directory, used for maildir output" + (single-char #\d) + (value (required DIR))) (output - "Output file, used for single-file templates (e.g., mbox). Defaults to stdout." + "Output file, used for mbox output. Default is stdout." (single-char #\o) (value (required FILE))))) -;; (template -;; "Output template for feed ('mbox' or 'maildir'). Defaults to 'mbox'." -;; (single-char #\t) -;; (value (required TEMPLATE))))) -;; The user's presumed config root. ;; Prints cli usage to stderr. @@ -389,17 +384,19 @@ ;; TODO: accept piped-in feeds (define (main) (let* ([args (getopt-long (command-line-arguments) *opts*)] - [output (alist-ref 'output args)]) + [output-dir (alist-ref 'outdir args)] + [output (or (alist-ref 'output args) output-dir)] + [template (if output-dir *maildir-template* *mbox-template*)]) (if (alist-ref 'help args) (help) (map (lambda (free-arg) (cond [(not (file-exists? free-arg)) #f] [output - (write-entries-to-file (all-entries free-arg) *mbox-template* output)] + (write-entries-to-file (all-entries free-arg) template output)] [(not output) (map (lambda (entry) - (write-entry entry *mbox-template* + (write-entry entry template (open-output-file* fileno/stdout))) (all-entries free-arg))])) (alist-ref '@ args)))))