This change finally sort of puts the parts together: We take a maildir, render all its note messages as standalone HTML, extract the attachments alongside and finally generate a global index page linking all notes. The new executable and mnote-html are both contained in the same image and we dispatch the right functionality based on argv[0]. Change-Id: I5a5bdbfaca79199f92e73ea4a2f070fa900d2bc4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5113 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
45 lines
934 B
Nix
45 lines
934 B
Nix
{ depot, pkgs, ... }:
|
|
|
|
(depot.nix.buildLisp.program {
|
|
name = "mblog";
|
|
|
|
srcs = [
|
|
./packages.lisp
|
|
./maildir.lisp
|
|
./transformer.lisp
|
|
./note.lisp
|
|
./mblog.lisp
|
|
./cli.lisp
|
|
];
|
|
|
|
deps = [
|
|
{
|
|
sbcl = depot.nix.buildLisp.bundled "uiop";
|
|
default = depot.nix.buildLisp.bundled "asdf";
|
|
}
|
|
depot.lisp.klatre
|
|
depot.third_party.lisp.alexandria
|
|
depot.third_party.lisp.babel
|
|
depot.third_party.lisp.closure-html
|
|
depot.third_party.lisp.cl-date-time-parser
|
|
depot.third_party.lisp.cl-who
|
|
depot.third_party.lisp.local-time
|
|
depot.third_party.lisp.mime4cl
|
|
];
|
|
|
|
main = "cli:main";
|
|
|
|
# due to sclf
|
|
brokenOn = [
|
|
"ccl"
|
|
"ecl"
|
|
];
|
|
}).overrideAttrs (super: {
|
|
# The built binary dispatches based on argv[0]. Building two executables would
|
|
# waste a lot of space.
|
|
buildCommand = ''
|
|
${super.buildCommand}
|
|
|
|
ln -s "$out/bin/mblog" "$out/bin/mnote-html"
|
|
'';
|
|
})
|