30ff3e0f39
I messed that up in my refactoring in #52767, since I moved the relevant bash code out of a function and failed to adjust the shell variable name. Now the plugin build will fail loudly when help tag generation fails to make sure this doesn't happen again.
60 lines
1.4 KiB
Nix
60 lines
1.4 KiB
Nix
{ stdenv
|
|
, rtpPath ? "share/vim-plugins"
|
|
, vim
|
|
}:
|
|
|
|
rec {
|
|
addRtp = path: attrs: derivation:
|
|
derivation // { rtp = "${derivation}/${path}"; } // {
|
|
overrideAttrs = f: buildVimPlugin (attrs // f attrs);
|
|
};
|
|
|
|
buildVimPlugin = attrs@{
|
|
name ? "${attrs.pname}-${attrs.version}",
|
|
namePrefix ? "vimplugin-",
|
|
src,
|
|
unpackPhase ? "",
|
|
configurePhase ? "",
|
|
buildPhase ? "",
|
|
preInstall ? "",
|
|
postInstall ? "",
|
|
path ? (builtins.parseDrvName name).name,
|
|
addonInfo ? null,
|
|
...
|
|
}:
|
|
addRtp "${rtpPath}/${path}" attrs (stdenv.mkDerivation (attrs // {
|
|
name = namePrefix + name;
|
|
|
|
inherit unpackPhase configurePhase buildPhase addonInfo preInstall postInstall;
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
target=$out/${rtpPath}/${path}
|
|
mkdir -p $out/${rtpPath}
|
|
cp -r . $target
|
|
|
|
# build help tags
|
|
if [ -d "$target/doc" ]; then
|
|
echo "Building help tags"
|
|
if ! ${vim}/bin/vim -N -u NONE -i NONE -n -E -s -c "helptags $target/doc" +quit!; then
|
|
echo "Failed to build help tags!"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "No docs available"
|
|
fi
|
|
|
|
if [ -n "$addonInfo" ]; then
|
|
echo "$addonInfo" > $target/addon-info.json
|
|
fi
|
|
|
|
runHook postInstall
|
|
'';
|
|
}));
|
|
|
|
buildVimPluginFrom2Nix = attrs: buildVimPlugin ({
|
|
buildPhase = ":";
|
|
configurePhase =":";
|
|
} // attrs);
|
|
}
|