diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix b/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix new file mode 100644 index 000000000000..451507885ce0 --- /dev/null +++ b/nixpkgs/pkgs/applications/editors/kakoune/wrapper.nix @@ -0,0 +1,31 @@ +{ symlinkJoin, makeWrapper, kakoune, plugins ? [], configure ? {} }: + +let + # "plugins" is the preferred way, but some configurations may be + # using "configure.plugins", so accept both + requestedPlugins = plugins ++ (configure.plugins or []); + +in + symlinkJoin { + name = "kakoune-${kakoune.version}"; + + nativeBuildInputs = [ makeWrapper ]; + + paths = [ kakoune ] ++ requestedPlugins; + + postBuild = '' + # location of kak binary is used to find ../share/kak/autoload, + # unless explicitly overriden with KAKOUNE_RUNTIME + rm "$out/bin/kak" + makeWrapper "${kakoune}/bin/kak" "$out/bin/kak" --set KAKOUNE_RUNTIME "$out/share/kak" + + # currently kakoune ignores doc files if they are symlinks, so workaround by + # copying doc files over, so they become regular files... + mkdir "$out/DELETE_ME" + mv "$out/share/kak/doc" "$out/DELETE_ME" + cp -r --dereference "$out/DELETE_ME/doc" "$out/share/kak" + rm -Rf "$out/DELETE_ME" + ''; + + meta = kakoune.meta // { priority = (kakoune.meta.priority or 0) - 1; }; + } |