tvl-depot/third_party/lisp/mime4cl/default.nix
sterni 5bc73de59d feat: move mblog header handling into mime4cl
Accessing the headers of a MIME message feels like something mime4cl
should handle. We implemented this ad hoc in mblog before in order to
not need to worry about doing it in a sensible way. Now we introduce a
decent-ish interface for getting a header from a MIME message,
mime-message-header-values:

* It returns a list because MIME message headers may appear multiple
  times.

* It decodes RFC2047 only upon request, as you may want to be stricter
  about parsing certain fields.

* It checks header name equality case insensitively.

The code for decoding the RFC2047 string is retained and still uses
babel for doing the actual decoding.

Change-Id: I58bbbe4b46dbded04160b481a28a40d14775673d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5150
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00

50 lines
1 KiB
Nix

# Copyright (C) 2021 by the TVL Authors
# SPDX-License-Identifier: LGPL-2.1-or-later
{ depot, pkgs, ... }:
depot.nix.buildLisp.library {
name = "mime4cl";
deps = [
depot.third_party.lisp.babel
depot.third_party.lisp.sclf
depot.third_party.lisp.npg
depot.third_party.lisp.trivial-gray-streams
];
srcs = [
./package.lisp
./endec.lisp
./streams.lisp
./mime.lisp
./address.lisp
];
tests = {
name = "mime4cl-tests";
srcs = [
./test/rt.lisp
./test/package.lisp
(pkgs.writeText "nix-samples.lisp" ''
(in-package :mime4cl-tests)
;; missing from the tarball completely
(defvar *samples-directory* (pathname "/this/does/not/exist"))
;; override auto discovery which doesn't work in store
(defvar *sample1-file* (pathname "${./test/sample1.msg}"))
'')
./test/endec.lisp
./test/address.lisp
./test/mime.lisp
];
expression = "(rtest:do-tests)";
};
# limited by sclf
brokenOn = [
"ccl"
"ecl"
];
}