* Resolve paths before checking app identity
Commands entered with a path do not match is_app. I encountered this
when working with a test for the rm_dir rule. This rule did not use the
@for_app decorator, but when I migrated it, the test for "./bin/hdfs.."
failed because 'hdfs' was recognized as a command, while "./bin/hdfs"
was not.
This commit addresses the false negative by resolving path names in the
command, via os.path.basename.
* Remove paths from for_app invocations in rules
I presume that the `./` in `./gradlew` was used here because thefuck
would not find an app match on just `gradlew`, and thus no fucks would
be given on the most common and idiomatic way of invoking gradlew.
After 8faf9b1, thefuck does not distinguish between commands with
paths and those without. Therefore, the tests for this rule are now
broken because thefuck strips paths from the _user_'s command, but not
from the for_app decoration.
This commit addresses that problem by changing the for_app decoration to
this rule.
* fix fuckup `branch 0v` by...
...deleting branch `0v` and running `git branch -v` as the user intended
* use quotes consistently
* provide new solution implementation based on feedback on PR
* rename files to more accurately reflect their more generic contents
* update import statement to match new file name
* update command name in README.md
* separate out matching tests so the pattern is clear for those who add matches in the future
Improves performance in WSL
Fix#1036
* Add excluded_search_path_prefixes setting
Allows filtering the paths used to search for commands
Can be useful to filter out /mnt/ in WSL for performance
* Add test for excluded_search_path_prefixes
* Apply suggestions from code review
Co-authored-by: Pablo Aguiar <scorphus@gmail.com>
Co-authored-by: Pablo Aguiar <scorphus@gmail.com>
* adding in files for the cd-cs feature
* Updated thefuck/rules/cd_cs.py comments to be more verbose
Thanks Scorphus!
Co-authored-by: Pablo Aguiar <scorphus@gmail.com>
* Updating the rules file to exclude the \xe2 character
This character(–) has lead to the commit failing some of the tests.
I am removing it from the code and we should see the tests pass now.
* Setting the encoding in thefuck/rules/cd_cs.py
Co-authored-by: Pablo Aguiar <scorphus@gmail.com>
Co-authored-by: SID SHARDANAND <sshardan@deakin.edu.au>
Co-authored-by: Pablo Aguiar <scorphus@gmail.com>
* 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>
Some git hosts will copy the entire clone command, while others just
copy the url, so typing "git clone ", then pasting a git url that
already has a "git clone " on the front is a somewhat common issue.
* add mistyping support for git lfs
* add the rule
* fix flake8
* flake8
* add to readme
* use fixtures and regex
* get rid of additional matched strings
* 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>
* Add choco_install rule
Adds a rule to append '.install' to a chocolatey install command that
failed because of a non-existent package.
TODO: add support for other suffixes (.portable), find more parameter
cases
* Apply suggestions from code review
Circling back to retest
Co-Authored-By: Pablo Aguiar <scorphus@gmail.com>
* Fixed errors from suggested changes
* Added more test cases, refactored parsing
* Reformat keyword detection if statement
* Fixed flake errors
* Added tests for match
* Add rule to remove shell prompt literals $
Rule added to handle cases where the $ symbol is used in the command,
this usually happens when the command is copy pasted from a
documentation that includes the shell prompt symbol in the code blocks.
* Change files using black and flake8 style check
* Refactor tests and rule
- Refactor test for cleaner test tables
- Removed unnecessary requires_output=True option
* switch korean letters to english
* revised according to recent changes
* Fix typo in tests/test_switch_lang.py
* Add a test case for coverage
* Change: Moved decomposing logic which changes command.script to get_new_command instead of match.
* Fix: changed unicode characters to unicode string for python2 compatibility.
* Fix: Modified to change request.
@ik1ne @yangkyeongmo
* Add: Test for branch names with slashes & Remote HEAD.
* - Add: Handling for removing remote HEAD.
- Change: Improved handling for branches with slash in their names.
* Add: Tests for newer version docker support.
* Add: Support for newer versions of docker (Modified rules.docker_not_command).
* Fix: Updated disabling memoize.
* Change: removed empty list check.
* Fix: _parse_commands now uses line.strip() internally and ends_with arg now doesn't end with newline.
* Change: Replaced disable_memoize in favor of no_memoize fixture.
* Fix: removed unused import.
* - Add: rules/go_unknown_command for misspelled go commands.
- Add: tests/test_go_unknown_command which tests match and mismatch case of rules/go_unknown_command.
- Change: Added description of go_unknown_command to README.md.
* Add: test_get_new_command for testing rules.go_unknown_command.test_get_new_command method.
* Change: go_unknown_command.match now uses for_app decorator.
* Add: get_golang_commands which dynamically gets golang possible commands.
* Fix: cache proper function instead of its result.
* Only consider raw command in output match
... else it will not work for localized messages.
Example German output:
```
Führen Sie »apt list --upgradable« aus, um sie anzuzeigen.
```
* added german output test
* make the linter happy
* add docker container removal
* remove container before deleting image
* update readme
* clean up and add assert not test
* test not docker command
* use shell.and_ correctly