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

Merge branch 'brew-link' of https://github.com/josephfrazier/thefuck into josephfrazier-brew-link

# Conflicts:
#	README.md
This commit is contained in:
Vladimir Iakovlev 2016-10-02 17:17:15 +02:00
commit 3c1cce6bd2
3 changed files with 53 additions and 0 deletions

View File

@ -239,6 +239,7 @@ Enabled by default only on specific platforms:
* `apt_get_search` – changes trying to search using `apt-get` with searching using `apt-cache`;
* `apt_invalid_operation` – fixes invalid `apt` and `apt-get` calls, like `apt-get isntall vim`;
* `brew_install` – fixes formula name for `brew install`;
* `brew_link` – adds `--overwrite --dry-run` if linking fails;
* `brew_uninstall` – adds `--force` to `brew uninstall` if multiple versions were installed;
* `brew_unknown_command` – fixes wrong brew commands, for example `brew docto/brew doctor`;
* `brew_update_formula` &ndash; turns `brew update <formula>` into `brew upgrade <formula>`;

View File

@ -0,0 +1,38 @@
import pytest
from tests.utils import Command
from thefuck.rules.brew_link import get_new_command, match
@pytest.fixture
def stderr():
return ("Error: Could not symlink bin/gcp\n"
"Target /usr/local/bin/gcp\n"
"already exists. You may want to remove it:\n"
"rm '/usr/local/bin/gcp'\n"
"\n"
"To force the link and overwrite all conflicting files:\n"
"brew link --overwrite coreutils\n"
"\n"
"To list all files that would be deleted:\n"
"brew link --overwrite --dry-run coreutils\n")
@pytest.fixture
def new_command(formula):
return 'brew link --overwrite --dry-run {}'.format(formula)
@pytest.mark.parametrize('script', ['brew link coreutils', 'brew ln coreutils'])
def test_match(stderr, script):
assert match(Command(script=script, stderr=stderr))
@pytest.mark.parametrize('script', ['brew link coreutils'])
def test_not_match(script):
stderr=''
assert not match(Command(script=script, stderr=stderr))
@pytest.mark.parametrize('script, formula, ', [('brew link coreutils', 'coreutils')])
def test_get_new_command(stderr, new_command, script, formula):
assert get_new_command(Command(script=script, stderr=stderr)) == new_command

View File

@ -0,0 +1,14 @@
from thefuck.utils import for_app
@for_app('brew', at_least=2)
def match(command):
return (command.script_parts[1] in ['ln', 'link']
and "brew link --overwrite --dry-run" in command.stderr)
def get_new_command(command):
command.script_parts[1] = 'link'
command.script_parts.insert(2, '--overwrite')
command.script_parts.insert(3, '--dry-run')
return ' '.join(command.script_parts)