diff --git a/README.md b/README.md index 48b4b0f..ce24a74 100644 --- a/README.md +++ b/README.md @@ -341,6 +341,7 @@ following rules are enabled by default: * `unknown_command` – fixes hadoop hdfs-style "unknown command", for example adds missing '-' to the command on `hdfs dfs ls`; * `unsudo` – removes `sudo` from previous command if a process refuses to run on superuser privilege. * `vagrant_up` – starts up the vagrant instance; +* `version` – fixes wrong verion commands like `git -v` or `fuck -ver`; * `whois` – fixes `whois` command; * `workon_doesnt_exists` – fixes `virtualenvwrapper` env name os suggests to create new. * `wrong_hyphen_before_subcommand` – removes an improperly placed hyphen (`apt-install` -> `apt install`, `git-log` -> `git log`, etc.) diff --git a/tests/rules/test_version.py b/tests/rules/test_version.py new file mode 100644 index 0000000..eca350a --- /dev/null +++ b/tests/rules/test_version.py @@ -0,0 +1,20 @@ +import pytest +from thefuck.rules.version import match, get_new_command +from thefuck.types import Command + + +@pytest.mark.parametrize('command', [ + Command('git -v', ''), + Command('git -version', ''), + Command('git -version', ''), + Command('fuck -ver', '')]) +def test_match(command): + assert match(command) + + +@pytest.mark.parametrize('command, new_command', [ + (Command('git -v', ''), 'git --version'), + (Command('git -version', ''), 'git --version'), + (Command('fuck -ver', ''), 'fuck --version')]) +def test_get_new_command(command, new_command): + assert get_new_command(command) == new_command diff --git a/thefuck/rules/version.py b/thefuck/rules/version.py new file mode 100644 index 0000000..750024f --- /dev/null +++ b/thefuck/rules/version.py @@ -0,0 +1,17 @@ +# Fixes incorrect usage of version commands +# +# Example : +# > git -v +# Here the correct usage is +# > git --version + + +def match(command): + return ('-v' in command.script) + + +def get_new_command(command): + if '--version' in command.script: + return command.script_parts[0] + ' -v' + else: + return command.script_parts[0] + ' --version'