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.
This commit is contained in:
parent
e9e25ec5fe
commit
4a8efae000
@ -52,7 +52,10 @@ let
|
|||||||
This index includes documentation for many Haskell modules.
|
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
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
@ -64,6 +67,10 @@ stdenv.mkDerivation {
|
|||||||
inherit docPackages;
|
inherit docPackages;
|
||||||
|
|
||||||
buildPhase = ''
|
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
|
mkdir -p $out/share/doc/hoogle
|
||||||
|
|
||||||
echo importing builtin packages
|
echo importing builtin packages
|
||||||
@ -76,17 +83,13 @@ stdenv.mkDerivation {
|
|||||||
done
|
done
|
||||||
|
|
||||||
echo importing other packages
|
echo importing other packages
|
||||||
for i in $docPackages; do
|
${lib.concatMapStringsSep "\n" (el: ''
|
||||||
if [[ ! $i == $out ]]; then
|
ln -sfn ${el.haddockDir} "$out/share/doc/hoogle/${el.name}"
|
||||||
for docdir in $i/share/doc/*-${ghcName}-*/* $i/share/doc/*; do
|
'')
|
||||||
name="$(basename $docdir)"
|
(lib.filter (el: el.haddockDir != null)
|
||||||
docdir=$docdir/html
|
(builtins.map (p: { haddockDir = p.haddockDir p;
|
||||||
if [[ -d $docdir ]]; then
|
name = p.pname; })
|
||||||
ln -sfn $docdir $out/share/doc/hoogle/$name
|
docPackages))}
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo building hoogle database
|
echo building hoogle database
|
||||||
hoogle generate --database $out/share/doc/hoogle/default.hoo --local=$out/share/doc/hoogle
|
hoogle generate --database $out/share/doc/hoogle/default.hoo --local=$out/share/doc/hoogle
|
||||||
|
Loading…
Reference in New Issue
Block a user