fish: functions type to attrsOf lines, load by text

Functions in fish are now defined in terms of adding the appropriate
files and `files.text` sets to `xdg.configFile`.
This commit is contained in:
Ryan Orendorff 2019-09-23 22:00:23 -07:00 committed by Robert Helgesson
parent 3de8102e7f
commit d45e1c4adc
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89

View file

@ -127,14 +127,12 @@ in
}; };
programs.fish.functions = mkOption { programs.fish.functions = mkOption {
type = types.attrsOf (fileType (name: body: '' type = types.attrsOf types.lines;
function ${name}
${body}
end
''));
default = {}; default = {};
example = { gitignore = "curl -sL https://www.gitignore.io/api/$argv"; };
description = '' description = ''
Functions to add to fish. Basic functions to add to fish. For more information see
<link xlink:href="https://fishshell.com/docs/current/commands.html#function"/>.
''; '';
}; };
@ -253,7 +251,14 @@ in
end end
''; '';
} { } {
xdg.configFile = map (n: { target = "fish/functions/${n}.fish"; source = cfg.functions.${n}.source; }) (attrNames cfg.functions); xdg.configFile = mapAttrs' (f_name: f_body: {
name = "fish/functions/${f_name}.fish";
value = {"text" = ''
function ${f_name}
${f_body}
end
'';};
}) cfg.functions;
} ( } (
let let
wrappedPkgVersion = lib.getVersion pkgs.fish; wrappedPkgVersion = lib.getVersion pkgs.fish;