1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-03-14 14:48:49 +00:00

Merge a2799ad09894808fc23ef1a99475ca30c3d4d67c into 2df1a5a45b5347bf9cb4e8925a66c1f5ba2c1313

This commit is contained in:
jakewarren 2018-05-14 21:59:34 +00:00 committed by GitHub
commit 6aa84f5049
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 0 deletions

View File

@ -244,6 +244,7 @@ following rules are enabled by default:
* `java` – removes `.java` extension when running Java programs;
* `javac` – appends missing `.java` when compiling Java files;
* `lein_not_task` – fixes wrong `lein` tasks like `lein rpl`;
* `long_form_help` – changes `-h` to `--help` when the short form version is not supported
* `ln_no_hard_link` – catches hard link creation on directories, suggest symbolic link;
* `ln_s_order` – fixes `ln -s` arguments order;
* `ls_all` – adds `-A` to `ls` when output is empty;

View File

@ -0,0 +1,22 @@
import pytest
from thefuck.rules.long_form_help import match, get_new_command
from thefuck.types import Command
@pytest.mark.parametrize('output', [
'Try \'grep --help\' for more information.'])
def test_match(output):
assert match(Command('grep -h', output))
def test_not_match():
assert not match(Command('', ''))
@pytest.mark.parametrize('before, after', [
('grep -h', 'grep --help'),
('tar -h', 'tar --help'),
('docker run -h', 'docker run --help'),
('cut -h', 'cut --help')])
def test_get_new_command(before, after):
assert get_new_command(Command(before, '')) == after

View File

@ -0,0 +1,27 @@
from thefuck.utils import replace_argument
import re
# regex to match a suggested help command from the tool output
helpRegex = r"(?:Run|Try) '([^']+)'(?: or '[^']+')? for (?:details|more information)."
def match(command):
if re.search(helpRegex, command.output, re.I) is not None:
return True
if '--help' in command.output:
return True
return False
def get_new_command(command):
if re.search(helpRegex, command.output) is not None:
matchObj = re.search(helpRegex, command.output, re.I)
return matchObj.group(1)
return replace_argument(command.script, '-h', '--help')
enabled_by_default = True
priority = 5000