Skip to content

Commit

Permalink
Added pacman invalid option rule (#960)
Browse files Browse the repository at this point in the history
* Added pacman invalid option rule

* Added test

* flake8 fixes

* Test changes

* Test fix

* Typo - again

* Travis test fix

* More Travis

* Even more travis

* I hope im right here

* Update README.md

Co-Authored-By: Pablo Aguiar <scorphus@gmail.com>

* Update thefuck/rules/pacman_invalid_option.py

Co-Authored-By: Pablo Aguiar <scorphus@gmail.com>

Co-authored-by: Pablo Aguiar <scorphus@gmail.com>
  • Loading branch information
DragonGhost7 and scorphus committed Mar 28, 2020
1 parent d3a0542 commit 3c542a5
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -325,6 +325,7 @@ The following rules are enabled by default on specific platforms only:
* `dnf_no_such_command` &ndash; fixes mistyped DNF commands;
* `nixos_cmd_not_found` &ndash; installs apps on NixOS;
* `pacman` &ndash; installs app with `pacman` if it is not installed (uses `yay` or `yaourt` if available);
* `pacman_invalid_option` &ndash; replaces lowercase `pacman` options with uppercase.
* `pacman_not_found` &ndash; fixes package name with `pacman`, `yay` or `yaourt`.
* `yum_invalid_operation` &ndash; fixes invalid `yum` calls, like `yum isntall vim`;

Expand Down
21 changes: 21 additions & 0 deletions tests/rules/test_pacman_invalid_option.py
@@ -0,0 +1,21 @@
from thefuck.rules.pacman_invalid_option import get_new_command, match
from thefuck.types import Command

good_output = "community/shared_meataxe 1.0-3\n A set of programs for working with matrix representations over finite fields\n "

bad_output = "error: invalid option '-s'"


def test_match():
assert not match(Command('pacman -Ss meat', good_output))
assert not match(Command('sudo pacman -Ss meat', good_output))
assert match(Command('pacman -ss meat', bad_output))
assert match(Command('sudo pacman -ss meat', bad_output))


def test_get_new_command():
new_command = get_new_command(Command('pacman -ss meat', bad_output))
assert new_command == 'pacman -Ss meat'

new_command = get_new_command(Command('sudo pacman -s meat', bad_output))
assert new_command == 'sudo pacman -S meat'
14 changes: 14 additions & 0 deletions thefuck/rules/pacman_invalid_option.py
@@ -0,0 +1,14 @@
from thefuck.specific.archlinux import archlinux_env
import re


def match(command):
return "error: invalid option '-s'" in command.output


def get_new_command(command):
opt = re.findall(r" -[dqrstuf]", command.script)[0]
return re.sub(opt, opt.upper(), command.script)


enabled_by_default = archlinux_env()

0 comments on commit 3c542a5

Please sign in to comment.