1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-02-21 20:38:54 +00:00

Merge pull request #657 from josephfrazier/git_not_command-wording

Update stderr wording of git_not_command
This commit is contained in:
Vladimir Iakovlev 2017-06-19 23:12:46 +02:00 committed by GitHub
commit fd20a3f832
3 changed files with 15 additions and 9 deletions

View File

@ -7,7 +7,7 @@ from tests.utils import Command
def git_not_command():
return """git: 'brnch' is not a git command. See 'git --help'.
Did you mean this?
The most similar command is
branch
"""
@ -16,7 +16,7 @@ branch
def git_not_command_one_of_this():
return """git: 'st' is not a git command. See 'git --help'.
Did you mean one of these?
The most similar commands are
status
reset
stage
@ -29,7 +29,7 @@ stats
def git_not_command_closest():
return '''git: 'tags' is not a git command. See 'git --help'.
Did you mean one of these?
The most similar commands are
\tstage
\ttag
'''

View File

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

View File

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