{ mkCljBin , callPackage , lib , doerg-parser , doerg-temml-worker , ibm-plex-web , fake-git , our-tex ? callPackage ./our-tex.nix {} , 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 plex our-tex ]; preBuild = '' cp ${doerg-config} resources/net/deertopia/doerg/extra-config.edn ''; doCheck = true; checkPhase = '' clojure -M:test ''; passthru = { inherit plex our-tex; }; }