diff options
author | Profpatsch <mail@profpatsch.de> | 2017-08-06 22:02:50 +0200 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2017-08-06 22:02:50 +0200 |
commit | 4a8efae000a0a9f8e61abfc76189259077b4a3ea (patch) | |
tree | 4398b2205ab09aef75ecd76a25068b6d71c7ae81 /pkgs/development/haskell-modules/hoogle.nix | |
parent | e9e25ec5fe773ef6bae9363e8f87fd0909f3ee56 (diff) |
pkgs/haskell-modules/hoogle.nix: find haddocks by `haddockDir`
Previously a few clumsy shell globs were used to find haddock output, which broke every time something in `generic-builder.nix` changed. Use the new `haddockDir` identifier exported by haskell packages.
Diffstat (limited to 'pkgs/development/haskell-modules/hoogle.nix')
-rw-r--r-- | pkgs/development/haskell-modules/hoogle.nix | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/pkgs/development/haskell-modules/hoogle.nix b/pkgs/development/haskell-modules/hoogle.nix index b6063f6ef9778..65124d4c7006c 100644 --- a/pkgs/development/haskell-modules/hoogle.nix +++ b/pkgs/development/haskell-modules/hoogle.nix @@ -52,7 +52,10 @@ let This index includes documentation for many Haskell modules. ''; - docPackages = lib.closePropagation packages; + # TODO: closePropagation is deprecated; replace + docPackages = lib.closePropagation + # we grab the doc outputs + (map (lib.getOutput "doc") packages); in stdenv.mkDerivation { @@ -64,6 +67,10 @@ stdenv.mkDerivation { inherit docPackages; buildPhase = '' + ${lib.optionalString (packages != [] -> docPackages == []) + ("echo WARNING: localHoogle package list empty, even though" + + " the following were specified: " + + lib.concatMapStringsSep ", " (p: p.name) packages)} mkdir -p $out/share/doc/hoogle echo importing builtin packages @@ -76,17 +83,13 @@ stdenv.mkDerivation { done echo importing other packages - for i in $docPackages; do - if [[ ! $i == $out ]]; then - for docdir in $i/share/doc/*-${ghcName}-*/* $i/share/doc/*; do - name="$(basename $docdir)" - docdir=$docdir/html - if [[ -d $docdir ]]; then - ln -sfn $docdir $out/share/doc/hoogle/$name - fi - done - fi - done + ${lib.concatMapStringsSep "\n" (el: '' + ln -sfn ${el.haddockDir} "$out/share/doc/hoogle/${el.name}" + '') + (lib.filter (el: el.haddockDir != null) + (builtins.map (p: { haddockDir = p.haddockDir p; + name = p.pname; }) + docPackages))} echo building hoogle database hoogle generate --database $out/share/doc/hoogle/default.hoo --local=$out/share/doc/hoogle |