diff options
author | Alexey Lebedeff <alebedev@mirantis.com> | 2017-07-28 12:42:28 +0300 |
---|---|---|
committer | Alexey Lebedeff <alebedev@mirantis.com> | 2017-07-28 12:48:11 +0300 |
commit | 7723d9935f6a134ce8cc878eb566c6caa784318e (patch) | |
tree | 046b82ae3721560db972e12fbb50adab6342e818 | |
parent | e10d7655dcc1f4d6ddc97b740ba4de83d345d3bf (diff) | |
download | nixlib-7723d9935f6a134ce8cc878eb566c6caa784318e.tar nixlib-7723d9935f6a134ce8cc878eb566c6caa784318e.tar.gz nixlib-7723d9935f6a134ce8cc878eb566c6caa784318e.tar.bz2 nixlib-7723d9935f6a134ce8cc878eb566c6caa784318e.tar.lz nixlib-7723d9935f6a134ce8cc878eb566c6caa784318e.tar.xz nixlib-7723d9935f6a134ce8cc878eb566c6caa784318e.tar.zst nixlib-7723d9935f6a134ce8cc878eb566c6caa784318e.zip |
fzf: add script for finding 'share' folder
So that helper scripts can be easily sourced in interactive shell configuration. `autojump` package was already present and had the same requirements for findind a `share` folders, so I took an inspiration there. I beleive this is a better alternative to: - https://github.com/NixOS/nixpkgs/pull/25080 - https://github.com/NixOS/nixpkgs/pull/27058 Replacing `$out/share/shell` with `$bin/share/fzf` was necessary to prevent dependency loop in produced derivations.
-rw-r--r-- | doc/package-notes.xml | 30 | ||||
-rw-r--r-- | pkgs/tools/misc/fzf/default.nix | 10 |
2 files changed, 33 insertions, 7 deletions
diff --git a/doc/package-notes.xml b/doc/package-notes.xml index 33a61f31938c..230f0ec7b93f 100644 --- a/doc/package-notes.xml +++ b/doc/package-notes.xml @@ -366,15 +366,33 @@ it. Place the resulting <filename>package.nix</filename> file into </section> -<section xml:id="sec-autojump"> +<section xml:id="sec-shell-helpers"> -<title>Autojump</title> +<title>Interactive shell helpers</title> <para> - autojump needs the shell integration to be useful but unlike other systems, - nix doesn't have a standard share directory location. This is why a - <command>autojump-share</command> script is shipped that prints the location - of the shared folder. This can then be used in the .bashrc like this: + Some packages provide the shell integration to be more useful. But + unlike other systems, nix doesn't have a standard share directory + location. This is why a bunch <command>PACKAGE-share</command> + scripts are shipped that print the location of the corresponding + shared folder. + + Current list of such packages is as following: + + <itemizedlist> + <listitem> + <para> + <literal>autojump</literal>: <command>autojump-share</command> + </para> + </listitem> + <listitem> + <para> + <literal>fzf</literal>: <command>fzf-share</command> + </para> + </listitem> + </itemizedlist> + + E.g. <literal>autojump</literal> can then used in the .bashrc like this: <screen> source "$(autojump-share)/autojump.bash" </screen> diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix index 916ba99317e8..11bc0ef4d111 100644 --- a/pkgs/tools/misc/fzf/default.nix +++ b/pkgs/tools/misc/fzf/default.nix @@ -39,7 +39,15 @@ buildGoPackage rec { cp -r $src/man/man1 $man/share/man mkdir -p $out/share/vim-plugins ln -s $out/share/go/src/github.com/junegunn/fzf $out/share/vim-plugins/${name} - cp -R $src/shell $out/share/shell + + cp -R $src/shell $bin/share/fzf + cat <<SCRIPT > $bin/bin/fzf-share + #!/bin/sh + # Run this script to find the fzf shared folder where all the shell + # integration scripts are living. + echo $bin/share/fzf + SCRIPT + chmod +x $bin/bin/fzf-share ''; meta = with stdenv.lib; { |