thefuck: add fish integration (#4535)
Co-authored-by: Sumner Evans <me@sumnerevans.com>
This commit is contained in:
parent
831b4fa317
commit
8765d4e38a
|
@ -21,6 +21,10 @@ with lib;
|
|||
'';
|
||||
};
|
||||
|
||||
enableFishIntegration = mkEnableOption "Fish integration" // {
|
||||
default = true;
|
||||
};
|
||||
|
||||
enableZshIntegration = mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
|
@ -46,6 +50,21 @@ with lib;
|
|||
|
||||
programs.bash.initExtra = mkIf cfg.enableBashIntegration shEvalCmd;
|
||||
|
||||
programs.fish.functions = mkIf cfg.enableFishIntegration {
|
||||
fuck = {
|
||||
description = "Correct your previous console command";
|
||||
body = ''
|
||||
set -l fucked_up_command $history[1]
|
||||
env TF_SHELL=fish TF_ALIAS=fuck PYTHONIOENCODING=utf-8 ${cfg.package}/bin/thefuck $fucked_up_command THEFUCK_ARGUMENT_PLACEHOLDER $argv | read -l unfucked_command
|
||||
if [ "$unfucked_command" != "" ]
|
||||
eval $unfucked_command
|
||||
builtin history delete --exact --case-sensitive -- $fucked_up_command
|
||||
builtin history merge
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh.initExtra = mkIf cfg.enableZshIntegration shEvalCmd;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
programs = {
|
||||
thefuck.enable = true;
|
||||
thefuck.enableBashIntegration = false;
|
||||
thefuck.enableFishIntegration = false;
|
||||
thefuck.enableZshIntegration = false;
|
||||
bash.enable = true;
|
||||
zsh.enable = true;
|
||||
|
@ -13,6 +14,7 @@
|
|||
|
||||
nmt.script = ''
|
||||
assertFileNotRegex home-files/.bashrc '@thefuck@/bin/thefuck'
|
||||
assertFileNotExists home-files/.config/fish/functions/fuck.fish
|
||||
assertFileNotRegex home-files/.zshrc '@thefuck@/bin/thefuck'
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
programs = {
|
||||
thefuck.enable = true;
|
||||
bash.enable = true;
|
||||
fish.enable = true;
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
|
@ -15,6 +16,19 @@
|
|||
home-files/.bashrc \
|
||||
'eval "$(@thefuck@/bin/thefuck '"'"'--alias'"'"')"'
|
||||
|
||||
assertFileExists home-files/.config/fish/functions/fuck.fish
|
||||
assertFileContains \
|
||||
home-files/.config/fish/functions/fuck.fish \
|
||||
'function fuck --description="Correct your previous console command"
|
||||
set -l fucked_up_command $history[1]
|
||||
env TF_SHELL=fish TF_ALIAS=fuck PYTHONIOENCODING=utf-8 @thefuck@/bin/thefuck $fucked_up_command THEFUCK_ARGUMENT_PLACEHOLDER $argv | read -l unfucked_command
|
||||
if [ "$unfucked_command" != "" ]
|
||||
eval $unfucked_command
|
||||
builtin history delete --exact --case-sensitive -- $fucked_up_command
|
||||
builtin history merge
|
||||
end
|
||||
end'
|
||||
|
||||
assertFileExists home-files/.zshrc
|
||||
assertFileContains \
|
||||
home-files/.zshrc \
|
||||
|
|
Loading…
Reference in a new issue