From a072a4206e2056e91d0e92d3ac21d9806eed555c Mon Sep 17 00:00:00 2001 From: Rutger Broekhoff Date: Mon, 29 Apr 2024 18:47:41 +0200 Subject: Build man pages inside of Crane derivation --- flake.nix | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 312d624..1a5da5c 100644 --- a/flake.nix +++ b/flake.nix @@ -35,7 +35,15 @@ extensions = [ "rust-src" ]; }; craneLib = (crane.mkLib pkgs).overrideToolchain rustToolchain; - src = craneLib.cleanCargoSource (craneLib.path ./.); + + src = + let docsFilter = path: _type: builtins.match ".*docs/man/.*\.[1-9]$" path != null; + docsOrCargo = path: type: + (docsFilter path type) || (craneLib.filterCargoSources path type); + in pkgs.lib.cleanSourceWith { + src = craneLib.path ./.; + filter = docsOrCargo; + }; commonArgs = { inherit src; @@ -46,30 +54,20 @@ cargoArtifacts = craneLib.buildDepsOnly commonArgs; - gitolfs3-bare = craneLib.buildPackage (commonArgs // { + gitolfs3 = (craneLib.buildPackage (commonArgs // { # We already have the gitolfs3-nextest check doCheck = false; - }); - - gitolfs3-man = pkgs.stdenv.mkDerivation { - name = "gitolfs3-man"; - - src = ./docs/man; - - installPhase = '' - install -D gitolfs3-authenticate.1 $out/share/man/gitolfs3-authenticate.1 - install -D gitolfs3-server.1 $out/share/man/gitolfs3-server.1 - install -D gitolfs3-shell.1 $out/share/man/gitolfs3-shell.1 + })).overrideAttrs(old: old // { + postInstall = (old.postInstall or "") + '' + ls docs + ls docs/man + install -D docs/man/gitolfs3-authenticate.1 $man/share/man/gitolfs3-authenticate.1 + install -D docs/man/gitolfs3-server.1 $man/share/man/gitolfs3-server.1 + install -D docs/man/gitolfs3-shell.1 $man/share/man/gitolfs3-shell.1 ''; - }; - - gitolfs3 = pkgs.buildEnv { - name = "gitolfs3"; - - paths = [ gitolfs3-bare gitolfs3-man ]; - pathsToLink = [ "/bin" "/share/man" ]; - }; + outputs = [ "out" "man" ]; + }); in { checks = { -- cgit v1.2.3