1
0
mirror of https://github.com/nvbn/thefuck.git synced 2024-10-05 18:31:10 +01:00

#N/A: Add conda rule (#1138)

* add conda rules

* revert

* add conda

* add to readme and flake

* consistency with quotes and use for_app

* Update thefuck/rules/conda_mistype.py

Co-authored-by: Pablo Aguiar <scorphus@gmail.com>
This commit is contained in:
Connor Martin 2021-02-08 06:04:59 -06:00 committed by GitHub
parent 0c58317932
commit fd90e69ceb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 42 additions and 0 deletions

View File

@ -184,6 +184,7 @@ following rules are enabled by default:
* `chmod_x` &ndash; add execution bit;
* `choco_install` &ndash; append common suffixes for chocolatey packages;
* `composer_not_command` &ndash; fixes composer command name;
* `conda_mistype` &ndash; fixes conda commands;
* `cp_create_destination` &ndash; creates a new directory when you attempt to `cp` or `mv` to a non existent one
* `cp_omitting_directory` &ndash; adds `-a` when you `cp` directory;
* `cpp11` &ndash; adds missing `-std=c++11` to `g++` or `clang++`;

View File

@ -0,0 +1,24 @@
import pytest
from thefuck.rules.conda_mistype import match, get_new_command
from thefuck.types import Command
@pytest.fixture
def mistype_response():
return """
CommandNotFoundError: No command 'conda lst'.
Did you mean 'conda list'?
"""
def test_match(mistype_response):
assert match(Command('conda lst', mistype_response))
err_response = 'bash: codna: command not found'
assert not match(Command('codna list', err_response))
def test_get_new_command(mistype_response):
assert (get_new_command(Command('conda lst', mistype_response)) == ['conda list'])

View File

@ -0,0 +1,17 @@
import re
from thefuck.utils import replace_command, for_app
@for_app("conda")
def match(command):
"""
Match a mistyped command
"""
return "Did you mean 'conda" in command.output
def get_new_command(command):
match = re.findall(r"'conda ([^']*)'", command.output)
broken_cmd = match[0]
correct_cmd = match[1]
return replace_command(command, broken_cmd, [correct_cmd])