1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-01-18 20:11:17 +00:00

Merge branch 'master' of github.com:nvbn/thefuck

This commit is contained in:
nvbn 2015-07-10 17:58:53 +03:00
commit 5abab8bd1e
4 changed files with 13 additions and 5 deletions

View File

@ -176,6 +176,7 @@ using the matched rule and runs it. Rules enabled by default are as follows:
* `ls_lah` – adds -lah to ls;
* `man` – change manual section;
* `man_no_space` – fixes man commands without spaces, for example `mandiff`;
* `mercurial` – fixes wrong `hg` commands;
* `mkdir_p` – adds `-p` when you trying to create directory without parent;
* `no_command` – fixes wrong console commands, for example `vom/vim`;
* `no_such_file` – creates missing directories with `mv` and `cp` commands;
@ -185,7 +186,7 @@ using the matched rule and runs it. Rules enabled by default are as follows:
* `python_execute` – appends missing `.py` when executing Python files;
* `quotation_marks` – fixes uneven usage of `'` and `"` when containing args'
* `rm_dir` – adds `-rf` when you trying to remove directory;
* `sed` – adds missing '/' to `sed`'s `s` commands;
* `sed_unterminated_s` – adds missing '/' to `sed`'s `s` commands;
* `sl_ls` – changes `sl` to `ls`;
* `ssh_known_hosts` – removes host from `known_hosts` on warning;
* `sudo` – prepends `sudo` to previous command if it failed because of permissions;

View File

@ -16,4 +16,4 @@ def test_match(tmux_ambiguous):
def test_get_new_command(tmux_ambiguous):
assert get_new_command(Command('tmux list', stderr=tmux_ambiguous), None)\
== 'tmux list-buffers'
== 'tmux list-keys'

View File

@ -13,7 +13,8 @@ patterns = ['permission denied',
'must be root',
'need to be root',
'need root',
'only root can do that']
'only root can do that',
'authentication is required']
def match(command, settings):

View File

@ -1,3 +1,4 @@
from thefuck.utils import get_closest
import re
@ -8,7 +9,12 @@ def match(command, settings):
def get_new_command(command, settings):
cmd = re.match(r"ambiguous command: (.*), could be: ([^, \n]*)",
cmd = re.match(r"ambiguous command: (.*), could be: (.*)",
command.stderr)
return command.script.replace(cmd.group(1), cmd.group(2))
old_cmd = cmd.group(1)
suggestions = [cmd.strip() for cmd in cmd.group(2).split(',')]
new_cmd = get_closest(old_cmd, suggestions)
return command.script.replace(old_cmd, new_cmd)