diff options
author | sterni <sternenseemann@systemli.org> | 2021-11-30T16·42+0100 |
---|---|---|
committer | sterni <sternenseemann@systemli.org> | 2022-01-30T09·38+0000 |
commit | 7577a89284cf3c187af66157796c8a24174b594f (patch) | |
tree | 0d50fa4a5581053c2e9e7d8f1577d1119836a422 /users/sterni/mblog | |
parent | 4803776491f093767131d8849a86ab771afb839e (diff) |
feat(sterni/mblog): add package to read maildirs r/3719
Change-Id: I7be8d8b7d12bb194712aa26f3ddad74340357779 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5070 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
Diffstat (limited to 'users/sterni/mblog')
-rw-r--r-- | users/sterni/mblog/default.nix | 1 | ||||
-rw-r--r-- | users/sterni/mblog/maildir.lisp | 17 | ||||
-rw-r--r-- | users/sterni/mblog/packages.lisp | 7 |
3 files changed, 25 insertions, 0 deletions
diff --git a/users/sterni/mblog/default.nix b/users/sterni/mblog/default.nix index 16ae573ba78c..1c2776ec9250 100644 --- a/users/sterni/mblog/default.nix +++ b/users/sterni/mblog/default.nix @@ -5,6 +5,7 @@ depot.nix.buildLisp.program { srcs = [ ./packages.lisp + ./maildir.lisp ./transformer.lisp ./note.lisp ./cli.lisp diff --git a/users/sterni/mblog/maildir.lisp b/users/sterni/mblog/maildir.lisp new file mode 100644 index 000000000000..aca014203e29 --- /dev/null +++ b/users/sterni/mblog/maildir.lisp @@ -0,0 +1,17 @@ +(in-package :maildir) +(declaim (optimize (safety 3))) + +(defun list (dir) + "Returns a list of pathnames to messages in a maildir. The messages are + returned in no guaranteed order. Note that this function doesn't fully + implement the behavior prescribed by maildir(5): It only looks at `cur` + and `new` and won't clean up `tmp` nor move files from `new` to `cur`, + since it is strictly read-only." + (flet ((subdir-contents (subdir) + (directory + (merge-pathnames + (make-pathname :directory `(:relative ,subdir) + :name :wild :type :wild) + dir)))) + (mapcan #'subdir-contents '("cur" "new")))) + diff --git a/users/sterni/mblog/packages.lisp b/users/sterni/mblog/packages.lisp index ca2e41b6827f..a58aad27d11b 100644 --- a/users/sterni/mblog/packages.lisp +++ b/users/sterni/mblog/packages.lisp @@ -1,3 +1,10 @@ +(defpackage :maildir + (:use :common-lisp) + (:shadow :list) + (:export :list) + (:documentation + "Very incomplete package for dealing with maildir(5).")) + (defpackage :mblog (:use :common-lisp |