blob: 6713a69d560eae0a05c32c81f9909cb78631d9eb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
{ lib, writeShellScriptBin, fish }:
with lib;
makeOverridable ({
completionDirs ? [],
functionDirs ? [],
confDirs ? [],
pluginPkgs ? []
}:
let
vendorDir = kind: plugin: "${plugin}/share/fish/vendor_${kind}.d";
complPath = completionDirs ++ map (vendorDir "completions") pluginPkgs;
funcPath = functionDirs ++ map (vendorDir "functions") pluginPkgs;
confPath = confDirs ++ map (vendorDir "conf") pluginPkgs;
in writeShellScriptBin "fish" ''
${fish}/bin/fish --init-command "
set --prepend fish_complete_path ${escapeShellArgs complPath}
set --prepend fish_function_path ${escapeShellArgs funcPath}
set --local fish_conf_source_path ${escapeShellArgs confPath}
for c in $fish_conf_source_path/*; source $c; end
" "$@"
'')
|