mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-31 07:04:12 +00:00 
			
		
		
		
	| @@ -146,6 +146,8 @@ sudo pip install thefuck --upgrade | ||||
| The Fuck tries to match a rule for the previous command, creates a new command | ||||
| using the matched rule and runs it. Rules enabled by default are as follows: | ||||
|  | ||||
| * `cargo` – runs `cargo build` instead of `cargo`; | ||||
| * `cargo_no_command` – fixes wrongs commands like `cargo buid`; | ||||
| * `cd_correction` – spellchecks and correct failed cd commands; | ||||
| * `cd_mkdir` – creates directories before cd'ing into them; | ||||
| * `cd_parent` – changes `cd..` to `cd ..`; | ||||
|   | ||||
							
								
								
									
										21
									
								
								tests/rules/test_cargo_no_command.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								tests/rules/test_cargo_no_command.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| import pytest | ||||
| from thefuck.rules.cargo_no_command import match, get_new_command | ||||
| from tests.utils import Command | ||||
|  | ||||
|  | ||||
| no_such_subcommand = """No such subcommand | ||||
|  | ||||
|         Did you mean `build`? | ||||
| """ | ||||
|  | ||||
|  | ||||
| @pytest.mark.parametrize('command', [ | ||||
|     Command(script='cargo buid', stderr=no_such_subcommand)]) | ||||
| def test_match(command): | ||||
|     assert match(command, None) | ||||
|  | ||||
|  | ||||
| @pytest.mark.parametrize('command, new_command', [ | ||||
|     (Command('cargo buid', stderr=no_such_subcommand), 'cargo build')]) | ||||
| def test_get_new_command(command, new_command): | ||||
|     assert get_new_command(command, None) == new_command | ||||
							
								
								
									
										6
									
								
								thefuck/rules/cargo.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								thefuck/rules/cargo.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| def match(command, settings): | ||||
|     return command.script == 'cargo' | ||||
|  | ||||
|  | ||||
| def get_new_command(command, settings): | ||||
|     return 'cargo build' | ||||
							
								
								
									
										14
									
								
								thefuck/rules/cargo_no_command.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								thefuck/rules/cargo_no_command.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| import re | ||||
|  | ||||
|  | ||||
| def match(command, settings): | ||||
|     return ('cargo' in command.script | ||||
|             and 'No such subcommand' in command.stderr | ||||
|             and 'Did you mean' in command.stderr) | ||||
|  | ||||
|  | ||||
| def get_new_command(command, settings): | ||||
|     broken = command.script.split()[1] | ||||
|     fix = re.findall(r'Did you mean `([^`]*)`', command.stderr)[0] | ||||
|  | ||||
|     return command.script.replace(broken, fix, 1) | ||||
		Reference in New Issue
	
	Block a user