forked from mirrors/nixpkgs
bccd0faee4
The init script slightly differs depending on which shell is in use. So for bash it should be in the interactiveShellInit as well. In this case we don't need a mkIf as `bash` is enabled by default on NixOS.
40 lines
922 B
Nix
40 lines
922 B
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
prg = config.programs;
|
|
cfg = prg.thefuck;
|
|
|
|
initScript = ''
|
|
eval $(${pkgs.thefuck}/bin/thefuck --alias ${cfg.alias})
|
|
'';
|
|
in
|
|
{
|
|
options = {
|
|
programs.thefuck = {
|
|
enable = mkEnableOption "thefuck";
|
|
|
|
alias = mkOption {
|
|
default = "fuck";
|
|
type = types.string;
|
|
|
|
description = ''
|
|
`thefuck` needs an alias to be configured.
|
|
The default value is `fuck`, but you can use anything else as well.
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
environment.systemPackages = with pkgs; [ thefuck ];
|
|
|
|
programs.bash.interactiveShellInit = initScript;
|
|
programs.zsh.interactiveShellInit = mkIf prg.zsh.enable initScript;
|
|
programs.fish.interactiveShellInit = mkIf prg.fish.enable ''
|
|
${pkgs.thefuck}/bin/thefuck --alias | source
|
|
'';
|
|
};
|
|
}
|