#! @GUILE@ -*- scheme -*- !# ;;; guile-email --- Guile email parser ;;; Copyright © 2021 Arun Isaac ;;; ;;; This file is part of guile-email. ;;; ;;; guile-email is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU Affero General Public License as ;;; published by the Free Software Foundation; either version 3 of the ;;; License, or (at your option) any later version. ;;; ;;; guile-email is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;;; Affero General Public License for more details. ;;; ;;; You should have received a copy of the GNU Affero General Public ;;; License along with guile-email. If not, see ;;; . ;;; Commentary: ;; This script recursively finds all mbox files in the current ;; directory, and tests if guile-email can parse all messages without ;; erroring out. ;;; Code: (use-modules (ice-9 ftw) (email email)) (for-each (lambda (mbox) (display mbox) (newline) (call-with-input-file mbox (lambda (port) (for-each parse-email (mbox->emails port))))) (file-system-fold (const #t) (lambda (name stat result) (if (string-suffix? ".mbox" name) (cons name result) result)) (lambda (name stat result) result) (lambda (name stat result) result) (lambda (name stat result) result) (lambda (name stat errno result) (error (strerror errno) name)) '() "."))