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

Merge pull request #62 from sjuvekar/master

A special case for 'Permission denied' error msg when trying to execute ...
This commit is contained in:
Vladimir Iakovlev 2015-04-20 18:52:35 +02:00
commit f6f6e2223c
3 changed files with 23 additions and 1 deletions

View File

@ -0,0 +1,9 @@
from thefuck.main import Command
from thefuck.rules.python_command import match, get_new_command
def test_match():
assert match(Command('temp.py', '', 'Permission denied'), None)
assert not match(Command('', '', ''), None)
def test_get_new_command():
assert get_new_command(Command('./test_sudo.py', '', ''), None) == 'python ./test_sudo.py'

View File

@ -51,7 +51,7 @@ def get_rules(user_dir, settings):
.joinpath('rules')\
.glob('*.py')
user = user_dir.joinpath('rules').glob('*.py')
return [load_rule(rule) for rule in list(bundled) + list(user)
return [load_rule(rule) for rule in sorted(list(bundled)) + list(user)
if rule.name != '__init__.py' and is_rule_enabled(settings, rule)]

View File

@ -0,0 +1,13 @@
# add 'python' suffix to the command if
# 1) The script does not have execute permission or
# 2) is interpreted as shell script
def match(command, settings):
toks = command.script.split()
return (len(toks) > 0
and toks[0].endswith('.py')
and ('Permission denied' in command.stderr or
'command not found' in command.stderr))
def get_new_command(command, settings):
return 'python ' + command.script