ooknet/modules/home/console/shell/fish/functions/develop.nix

31 lines
759 B
Nix

{
self,
pkgs,
...
}: let
# get devshell names from flake
devShellNames = builtins.concatStringsSep " " (builtins.attrNames self.devShells.${pkgs.system});
in {
programs.fish = {
# add devshells completions to init script
interactiveShellInit = ''
complete -c develop -f -a "${devShellNames}"
'';
functions.develop = {
description = "Easily jump into any of the ooknet devshells";
body =
#fish
''
if test -n "$argv[1]"
if test -n "$FLAKE"
nix develop $FLAKE#$argv[1]
else
echo "error: FLAKE variable is not set";
end
else
echo "error: No argument was provided";
end
'';
};
};
}