feat(sterni/blërg): yet another blog software

Currently, blërg is an incomplete reimplementation of
//users/sterni/mblog that uses mblaze(7) and //users/sterni/mn2html to
process the backing mail notes.

Now, why start from scratch again?

- mblog is depressingly slow at the moment which is due to
  //third_party/lisp/mime4cl. The performance problems are
  (probably) solvable, but this would require carefully
  redesigning the library's use of streams. I'm not motivated
  to look into that at the moment, unfortunately.

- I had an idea for intergrating additional storage backends
  for entries into an mblog like software. I've found experimenting
  with this in BQN to be quite pleasant as the backends can
  easily be expressed as namespaces.

Change-Id: I90c8ff7b5f7235d6fd7b0619338b553be8742e49
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13015
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
sterni 2024-12-20 01:56:02 +01:00 committed by clbot
parent ba2d2d3eea
commit 6479f9ae5e
2 changed files with 125 additions and 0 deletions

View file

@ -0,0 +1,32 @@
{ depot, pkgs, lib, ... }:
let
runtimeDependencies = [
depot.users.sterni.mn2html
pkgs.mblaze
pkgs.execline # execline-cd
];
buildInputs = [
pkgs.cbqn
];
in
pkgs.runCommandNoCC "blerg"
{
src = builtins.path {
name = "blerg.bqn";
path = ./. + "/blërg.bqn";
};
nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
inherit buildInputs;
passthru.shell = pkgs.mkShell {
name = "blërg-shell";
packages = runtimeDependencies ++ buildInputs;
};
}
''
install -Dm755 "$src" "$out/bin/blërg"
patchShebangs "$out/bin/blërg"
wrapProgram "$out/bin/blërg" --prefix PATH : "${lib.makeBinPath runtimeDependencies}"
''