diff --git a/pkgs/applications/editors/vim/plugins/utils/build-vim-plugin.nix b/pkgs/applications/editors/vim/plugins/utils/build-vim-plugin.nix index 9b426edb593e..1faf3bf64c02 100644 --- a/pkgs/applications/editors/vim/plugins/utils/build-vim-plugin.nix +++ b/pkgs/applications/editors/vim/plugins/utils/build-vim-plugin.nix @@ -43,7 +43,7 @@ target=$out/${rtpPath}/${path} mkdir -p $out/${rtpPath} - cp -r . $target + ${lib.optionalString (!(attrs.dontUnpack or false)) "cp -r . $target"} runHook postInstall ''; diff --git a/pkgs/test/vim/default.nix b/pkgs/test/vim/default.nix index 296409a7e035..4b0c770f0a85 100644 --- a/pkgs/test/vim/default.nix +++ b/pkgs/test/vim/default.nix @@ -25,6 +25,26 @@ lib.recurseIntoAttrs { vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-nix ]; }; + test_vim_plugin_dont_unpack = + let + plugin = vimUtils.buildVimPlugin { + pname = "vim-plugin-dont-unpack-test"; + version = "0"; + src = pkgs.writeText "probe.vim" ""; + dontUnpack = true; + buildPhase = '' + install -D "$src" "$out/colors/probe.vim" + ''; + }; + in + pkgs.runCommand "vim-plugin-dont-unpack-test" { } '' + test -f ${plugin}/colors/probe.vim + for file in env-vars .attrs.json .attrs.sh; do + test ! -e ${plugin}/"$file" + done + mkdir -p "$out" + ''; + # test that all vimPlugins have `passthru.vimPlugin = true` test-all-plugins-have-vimPlugin-true = let