78 lines
1.7 KiB
Nix
78 lines
1.7 KiB
Nix
{ mkCljBin
|
|
, callPackage
|
|
, lib
|
|
, doerg-parser
|
|
, doerg-temml-worker
|
|
, ibm-plex-web
|
|
, test-emacs ? callPackage ./test-emacs.nix {}
|
|
, fake-git
|
|
, our-tex
|
|
, makeWrapper
|
|
, writeText
|
|
}:
|
|
|
|
let
|
|
# mkCljBin sans fake-git. We don't need it, and I don't want it in
|
|
# my dev shell.
|
|
mkCljBin' = args: (mkCljBin args).overrideAttrs (final: prev: {
|
|
nativeBuildInputs =
|
|
builtins.filter
|
|
# A possibly-sketchy predicate, lol.
|
|
(x: x != fake-git)
|
|
prev.nativeBuildInputs;
|
|
});
|
|
|
|
plex = ibm-plex-web.override {
|
|
families = [ "math" "serif" "sans" "sans-kr" ];
|
|
};
|
|
|
|
bin-path = lib.makeBinPath [
|
|
doerg-parser
|
|
our-tex
|
|
doerg-temml-worker
|
|
];
|
|
|
|
doerg-config = writeText "doerg-extra-config.edn" ''
|
|
#:net.deertopia.doerg
|
|
{:ibm-plex-web "${ibm-plex-web}"
|
|
:latex "${lib.getExe' our-tex "xelatex"}"
|
|
:dvisvgm "${lib.getExe' our-tex "dvisvgm"}"
|
|
:doerg-temml-worker "${lib.getExe doerg-temml-worker}"
|
|
:doerg-parser "${lib.getExe doerg-parser}"}
|
|
'';
|
|
in mkCljBin' {
|
|
name = "net.deertopia/doerg";
|
|
version = "0.1.0";
|
|
projectSrc = lib.cleanSource ./.;
|
|
lockfile = ./deps-lock.json;
|
|
main-ns = "net.deertopia.doerg.main";
|
|
nativeBuildInputs = [
|
|
plex
|
|
makeWrapper
|
|
];
|
|
buildInputs = [
|
|
doerg-parser
|
|
doerg-temml-worker
|
|
plex
|
|
our-tex
|
|
];
|
|
nativeCheckInputs = [
|
|
doerg-parser
|
|
doerg-temml-worker
|
|
test-emacs
|
|
plex
|
|
our-tex
|
|
];
|
|
preBuild = ''
|
|
cp ${doerg-config} resources/net/deertopia/doerg/extra-config.edn
|
|
'';
|
|
doCheck = true;
|
|
checkPhase = ''
|
|
export \
|
|
EMACS=test-emacs \
|
|
XDG_STATE_HOME=$(mktemp -d "state-home-XXXXXX")
|
|
clojure -M:test
|
|
'';
|
|
passthru = { inherit plex our-tex test-emacs; };
|
|
}
|