* 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.
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>
* #833: do not require sudo on TravisCI
* #N/A: Add Python dev releases to TravisCI pipeline
Inspired by Brett Cannon's advise [1].
1: https://snarky.ca/how-to-use-your-project-travis-to-help-test-python-itself/
* #837: try and kill proc and its children
* #N/A: show shell information on `thefuck --version`
* #N/A: omit default arguments to get_close_matches
* #842: add settings var to control number of close matches
* #N/A: remove `n` from the list of `get_closest`'s args
This allows writing rules more easily (eg. the git_branch_list rule
tests for `command.script.split() == 'git branch list'.split()`) and
looks nicer when `require_confirmation` is set.