1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-01-31 02:01:13 +00:00

refact(shells): use an env var TF_ALIAS to keep the name of the alias

This environment variable may be used by any rule to decide whether it
matches or not.
This commit is contained in:
Pablo Santiago Blum de Aguiar 2015-06-10 20:50:49 -03:00
parent be682170e5
commit c08d9125e4
2 changed files with 29 additions and 4 deletions

View File

@ -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()

View File

@ -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)