From e85e257ad98a5fb3a98d5af26515501b7fefe6a2 Mon Sep 17 00:00:00 2001 From: Benjamin Hipple Date: Sun, 9 Feb 2020 18:43:22 -0500 Subject: fzf: fix patch for vim plugin; enable tests; avoid direct $src… (#79575) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It was previously referencing `$bin`, but this package no longer produces a `bin` output, just `out` and `share`. Updated to make the comparison check a bit more robust. Also updated to avoid direct dependency on the `$src` directory out of the nix store, instead using the processed src setup in the unpackPhase. This provides a cleaner abstraction between the build/install phase and the input src phase, and avoids an unnecessary dependency on whether the source disted tarball comes from `fetchFromGitHub` (in which case it's an unpacked directory) or something like `fetchurl`. In either case, stdenv is responsible for processing the input `src` and setting up a clean build dir for us, so we should use that. This produces an equivalent directory tree, except that the vim plugin is no longer broken. --- pkgs/tools/misc/fzf/default.nix | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'pkgs/tools/misc/fzf') diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix index 960373e7e5f..0694d5931ef 100644 --- a/pkgs/tools/misc/fzf/default.nix +++ b/pkgs/tools/misc/fzf/default.nix @@ -19,32 +19,34 @@ buildGoModule rec { buildInputs = [ ncurses ]; + # The vim plugin expects a relative path to the binary; patch it to abspath. patchPhase = '' - sed -i -e "s|expand(':h:h')|'$bin'|" plugin/fzf.vim + sed -i -e "s|expand(':h:h')|'$out'|" plugin/fzf.vim - # Original and output files can't be the same - if cmp -s $src/plugin/fzf.vim plugin/fzf.vim; then - echo "Vim plugin patch not applied properly. Aborting" && \ - exit 1 + if ! grep -q $out plugin/fzf.vim; then + echo "Failed to replace vim base_dir path with $out" + exit 1 fi ''; + doCheck = true; + preInstall = '' mkdir -p $out/share/fish/{vendor_functions.d,vendor_conf.d} - cp $src/shell/key-bindings.fish $out/share/fish/vendor_functions.d/fzf_key_bindings.fish + cp shell/key-bindings.fish $out/share/fish/vendor_functions.d/fzf_key_bindings.fish cp ${fishHook} $out/share/fish/vendor_conf.d/load-fzf-key-bindings.fish ''; postInstall = '' - cp $src/bin/fzf-tmux $out/bin + cp bin/fzf-tmux $out/bin mkdir -p $man/share/man - cp -r $src/man/man1 $man/share/man + cp -r man/man1 $man/share/man mkdir -p $out/share/vim-plugins/${pname} - cp -r $src/plugin $out/share/vim-plugins/${pname} + cp -r plugin $out/share/vim-plugins/${pname} - cp -R $src/shell $out/share/fzf + cp -R shell $out/share/fzf cat <