buildVimPlugin: check that neovim can require the module.

Add:
```
    doInstallCheck = true;
    nvimRequireCheck = "toto";
```
to your vimPluginCall.
main
Matthieu Coudron 2 years ago
parent 6936329cf2
commit 08b6ad0ea5
  1. 3
      pkgs/applications/editors/vim/plugins/build-vim-plugin.nix
  2. 21
      pkgs/applications/editors/vim/plugins/neovim-require-check-hook.sh
  3. 3
      pkgs/applications/editors/vim/plugins/overrides.nix
  4. 12
      pkgs/applications/editors/vim/plugins/vim-utils.nix

@ -3,6 +3,7 @@
, vim
, vimCommandCheckHook
, vimGenDocHook
, neovimRequireCheckHook
}:
rec {
@ -31,7 +32,7 @@ rec {
forceShare= [ "man" "info" ];
nativeBuildInputs = attrs.nativeBuildInputs or []
++ [ vimCommandCheckHook ]
++ [ vimCommandCheckHook neovimRequireCheckHook ]
++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) vimGenDocHook;
inherit unpackPhase configurePhase buildPhase addonInfo preInstall postInstall;

@ -0,0 +1,21 @@
# Setup hook for checking whether Python imports succeed
echo "Sourcing neovim-require-check-hook.sh"
neovimRequireCheckHook () {
echo "Executing neovimRequireCheckHook"
if [ -n "$nvimRequireCheck" ]; then
echo "Check whether the following module can be imported: $nvimRequireCheck"
# editorconfig-checker-disable
export HOME="$TMPDIR"
@nvimBinary@ -es -n -u NONE -i NONE --clean -V1 \
--cmd "set rtp+=$out" \
--cmd "lua require('$nvimRequireCheck')"
fi
}
echo "Using neovimRequireCheckHook"
preDistPhases+=" neovimRequireCheckHook"

@ -321,6 +321,9 @@ self: super: {
sed -Ei lua/plenary/curl.lua \
-e 's@(command\s*=\s*")curl(")@\1${curl}/bin/curl\2@'
'';
doInstallCheck = true;
nvimRequireCheck = "plenary";
});
gruvbox-nvim = super.gruvbox-nvim.overrideAttrs (old: {

@ -531,8 +531,18 @@ rec {
};
} ./vim-command-check-hook.sh) {};
neovimRequireCheckHook = callPackage ({ neovim-unwrapped }:
makeSetupHook {
name = "neovim-require-check-hook";
deps = [ neovim-unwrapped ];
substitutions = {
nvimBinary = "${neovim-unwrapped}/bin/nvim";
inherit rtpPath;
};
} ./neovim-require-check-hook.sh) {};
inherit (import ./build-vim-plugin.nix {
inherit lib stdenv rtpPath vim vimGenDocHook vimCommandCheckHook;
inherit lib stdenv rtpPath vim vimGenDocHook vimCommandCheckHook neovimRequireCheckHook;
}) buildVimPlugin buildVimPluginFrom2Nix;

Loading…
Cancel
Save