1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-03-20 01:28:56 +00:00

Make git_not_command stderr detection backward-compatible

This commit is contained in:
Joseph Frazier 2017-06-06 13:56:13 -04:00
parent 76600cf40a
commit b6ed499103
2 changed files with 12 additions and 6 deletions

View File

@ -6,12 +6,13 @@ from thefuck.specific.git import git_support
@git_support @git_support
def match(command): def match(command):
return (" is not a git command. See 'git --help'." in command.stderr return (" is not a git command. See 'git --help'." in command.stderr
and 'The most similar command' in command.stderr) and ('The most similar command' in command.stderr
or 'Did you mean' in command.stderr))
@git_support @git_support
def get_new_command(command): def get_new_command(command):
broken_cmd = re.findall(r"git: '([^']*)' is not a git command", broken_cmd = re.findall(r"git: '([^']*)' is not a git command",
command.stderr)[0] command.stderr)[0]
matched = get_all_matched_commands(command.stderr, 'The most similar command') matched = get_all_matched_commands(command.stderr, ['The most similar command', 'Did you mean'])
return replace_command(command, broken_cmd, matched) return replace_command(command, broken_cmd, matched)

View File

@ -141,12 +141,17 @@ def eager(fn, *args, **kwargs):
@eager @eager
def get_all_matched_commands(stderr, separator='Did you mean'): def get_all_matched_commands(stderr, separator='Did you mean'):
if not isinstance(separator, list):
separator = [separator]
should_yield = False should_yield = False
for line in stderr.split('\n'): for line in stderr.split('\n'):
if separator in line: for sep in separator:
should_yield = True if sep in line:
elif should_yield and line: should_yield = True
yield line.strip() break
else:
if should_yield and line:
yield line.strip()
def replace_command(command, broken, matched): def replace_command(command, broken, matched):