html.nix/flake.nix

49 lines
1.2 KiB
Nix

{
inputs = {
nixpkgsLib.url = "github:divnix/nixpkgs.lib";
};
outputs = { self, nixpkgsLib }:
let
lib = nixpkgsLib.lib // {
recursiveAttrPaths = set:
let
flattenIfHasList = x:
if (lib.isList x) && (lib.any lib.isList x)
then lib.concatMap flattenIfHasList x
else [ x ];
recurse = path: set:
let
g =
name: value:
if lib.isAttrs value
then recurse (path ++ [ name ]) value
else path ++ [ name ];
in
lib.mapAttrsToList g set;
in
flattenIfHasList (recurse [ ] set);
};
tags = import ./tags.nix { format = false; inherit lib; };
pkgsLib = (final: prev: {
htmlNix = import ./pkgs-lib.nix { inherit lib; pkgs = prev; };
});
in
{
lib = {
inherit tags;
};
overlays = {
inherit pkgsLib;
};
examples = {
tags = import ./examples/tags.nix tags;
serve = import ./examples/serve.nix { inherit tags pkgsLib; }; # needs --impure
};
};
}