1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-01-31 10:11:14 +00:00

Add a no_such_file rule

This commit is contained in:
mcarton 2015-05-15 18:03:17 +02:00
parent 371a4b0ad3
commit 3c4f9d50a9
2 changed files with 27 additions and 0 deletions

View File

@ -161,6 +161,7 @@ using the matched rule and runs it. Rules enabled by default are as follows:
* `lein_not_task` – fixes wrong `lein` tasks like `lein rpl`;
* `mkdir_p` – adds `-p` when you trying to create directory without parent;
* `no_command` – fixes wrong console commands, for example `vom/vim`;
* `no_such_file` – creates missing directories with `mv` and `cp` commands;
* `man_no_space` – fixes man commands without spaces, for example `mandiff`;
* `pacman` – installs app with `pacman` or `yaourt` if it is not installed;
* `pip_unknown_command` – fixes wrong pip commands, for example `pip instatl/pip install`;

View File

@ -0,0 +1,26 @@
import re
patterns = (
r"mv: cannot move '[^']*' to '([^']*)': No such file or directory",
r"cp: cannot create regular file '([^']*)': No such file or directory",
)
def match(command, settings):
for pattern in patterns:
if re.search(pattern, command.stderr):
return True
return False
def get_new_command(command, settings):
for pattern in patterns:
file = re.findall(pattern, command.stderr)
if file:
file = file[0]
dir = file[0:file.rfind('/')]
return 'mkdir -p {} && {}'.format(dir, command.script)