home-manager/tests/modules/programs/fish/functions.nix
Cole Helbling a11cf1decd
fish: allow arguments to functions
This allows the ability to provide arguments to a function, such as
`--on-event` in order to trigger a function on the
`fish_command_not_found` event, for example.

PR #1063
2020-03-07 12:51:37 +01:00

48 lines
1 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let
func = pkgs.writeText "func.fish" ''
function func
echo "Hello"
end
'';
funcEvent = pkgs.writeText "func-event.fish" ''
function func-event --on-event="fish_command_not_found"
echo "Not found!"
end
'';
in {
config = {
programs.fish = {
enable = true;
functions = {
func = ''echo "Hello"'';
func-event = {
body = ''echo "Not found!"'';
onEvent = "fish_command_not_found";
};
};
};
nmt = {
description =
"if fish.function is set, check file exists and contents match";
script = ''
assertFileExists home-files/.config/fish/functions/func.fish
echo ${func}
assertFileContent home-files/.config/fish/functions/func.fish ${func}
assertFileExists home-files/.config/fish/functions/func-event.fish
echo ${funcEvent}
assertFileContent home-files/.config/fish/functions/func-event.fish ${funcEvent}
'';
};
};
}