diff --git a/tests/test_shells.py b/tests/test_shells.py index c354441f..f571a2c6 100644 --- a/tests/test_shells.py +++ b/tests/test_shells.py @@ -33,6 +33,11 @@ class TestGeneric(object): def test_get_aliases(self, shell): assert shell.get_aliases() == {} + def test_app_alias(self, shell): + assert 'alias fuck' in shell.app_alias() + assert 'thefuck' in shell.app_alias() + assert 'TF_ALIAS' in shell.app_alias() + @pytest.mark.usefixtures('isfile') class TestBash(object): @@ -75,6 +80,11 @@ class TestBash(object): 'la': 'ls -A', 'll': 'ls -alF'} + def test_app_alias(self, shell): + assert 'alias fuck' in shell.app_alias() + assert 'thefuck' in shell.app_alias() + assert 'TF_ALIAS' in shell.app_alias() + @pytest.mark.usefixtures('isfile') class TestFish(object): @@ -124,6 +134,11 @@ class TestFish(object): 'll': 'll', 'math': 'math'} + def test_app_alias(self, shell): + assert 'function fuck' in shell.app_alias() + assert 'thefuck' in shell.app_alias() + assert 'TF_ALIAS' in shell.app_alias() + @pytest.mark.usefixtures('isfile') class TestZsh(object): @@ -167,3 +182,8 @@ class TestZsh(object): 'l': 'ls -CF', 'la': 'ls -A', 'll': 'ls -alF'} + + def test_app_alias(self, shell): + assert 'alias fuck' in shell.app_alias() + assert 'thefuck' in shell.app_alias() + assert 'TF_ALIAS' in shell.app_alias() diff --git a/thefuck/shells.py b/thefuck/shells.py index 6bfc84d6..336608ea 100644 --- a/thefuck/shells.py +++ b/thefuck/shells.py @@ -33,7 +33,7 @@ class Generic(object): return command_script def app_alias(self): - return "\nalias fuck='eval $(thefuck $(fc -ln -1))'\n" + return "\nalias fuck='TF_ALIAS=fuck eval $(thefuck $(fc -ln -1))'\n" def _get_history_file_name(self): return '' @@ -54,7 +54,7 @@ class Generic(object): class Bash(Generic): def app_alias(self): - return "\nalias fuck='eval $(thefuck $(fc -ln -1)); history -r'\n" + return "\nalias fuck='TF_ALIAS=fuck eval $(thefuck $(fc -ln -1)); history -r'\n" def _parse_alias(self, alias): name, value = alias.replace('alias ', '', 1).split('=', 1) @@ -83,6 +83,7 @@ class Fish(Generic): def app_alias(self): return ("function fuck -d 'Correct your previous console command'\n" " set -l exit_code $status\n" + " set -l TF_ALIAS fuck\n" " set -l eval_script" " (mktemp 2>/dev/null ; or mktemp -t 'thefuck')\n" " set -l fucked_up_commandd $history[1]\n" @@ -125,7 +126,7 @@ class Fish(Generic): class Zsh(Generic): def app_alias(self): - return "\nalias fuck='eval $(thefuck $(fc -ln -1 | tail -n 1)); fc -R'\n" + return "\nalias fuck='TF_ALIAS=fuck eval $(thefuck $(fc -ln -1 | tail -n 1)); fc -R'\n" def _parse_alias(self, alias): name, value = alias.split('=', 1) @@ -152,7 +153,7 @@ class Zsh(Generic): class Tcsh(Generic): def app_alias(self): - return "\nalias fuck 'set fucked_cmd=`history -h 2 | head -n 1` && eval `thefuck ${fucked_cmd}`'\n" + return "\nalias fuck 'setenv TF_ALIAS fuck && set fucked_cmd=`history -h 2 | head -n 1` && eval `thefuck ${fucked_cmd}`'\n" def _parse_alias(self, alias): name, value = alias.split("\t", 1) @@ -203,6 +204,10 @@ def app_alias(): print(_get_shell().app_alias()) +def thefuck_alias(): + return os.environ.get('TF_ALIAS', 'fuck') + + def put_to_history(command): return _get_shell().put_to_history(command)