diff options
author | Benjamin Hipple <bhipple@protonmail.com> | 2020-02-09 18:43:22 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-09 15:43:22 -0800 |
commit | e85e257ad98a5fb3a98d5af26515501b7fefe6a2 (patch) | |
tree | 57b6556ea5047dea3ff6e4d45e6e3203cfe9d60b | |
parent | 349b471469fa9dd0293f26149a2860da3b6e3633 (diff) | |
download | nixpkgs-e85e257ad98a5fb3a98d5af26515501b7fefe6a2.tar nixpkgs-e85e257ad98a5fb3a98d5af26515501b7fefe6a2.tar.gz nixpkgs-e85e257ad98a5fb3a98d5af26515501b7fefe6a2.tar.bz2 nixpkgs-e85e257ad98a5fb3a98d5af26515501b7fefe6a2.tar.lz nixpkgs-e85e257ad98a5fb3a98d5af26515501b7fefe6a2.tar.xz nixpkgs-e85e257ad98a5fb3a98d5af26515501b7fefe6a2.tar.zst nixpkgs-e85e257ad98a5fb3a98d5af26515501b7fefe6a2.zip |
fzf: fix patch for vim plugin; enable tests; avoid direct $src… (#79575)
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.
-rw-r--r-- | pkgs/tools/misc/fzf/default.nix | 22 |
1 files changed, 12 insertions, 10 deletions
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('<sfile>:h:h')|'$bin'|" plugin/fzf.vim + sed -i -e "s|expand('<sfile>: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 <<SCRIPT > $out/bin/fzf-share #!${runtimeShell} # Run this script to find the fzf shared folder where all the shell |