mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-30 06:34:09 +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:
		
							
								
								
									
										9
									
								
								tests/rules/test_python_command.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								tests/rules/test_python_command.py
									
									
									
									
									
										Normal 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' | ||||
| @@ -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)] | ||||
|  | ||||
|  | ||||
|   | ||||
							
								
								
									
										13
									
								
								thefuck/rules/python_command.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								thefuck/rules/python_command.py
									
									
									
									
									
										Normal 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 | ||||
		Reference in New Issue
	
	Block a user