mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-30 06:34:09 +00:00 
			
		
		
		
	| @@ -218,7 +218,11 @@ match(command: Command, settings: Settings) -> bool | ||||
| get_new_command(command: Command, settings: Settings) -> str | list[str] | ||||
| ``` | ||||
|  | ||||
| Also the rule can contain an optional function `side_effect(command: Command, settings: Settings) -> None` | ||||
| Also the rule can contain an optional function | ||||
|  | ||||
| ```python | ||||
| side_effect(old_command: Command, fixed_command: str, settings: Settings) -> None | ||||
| ``` | ||||
| and optional `enabled_by_default`, `requires_output` and `priority` variables. | ||||
|  | ||||
| `Command` has three attributes: `script`, `stdout` and `stderr`. | ||||
|   | ||||
| @@ -52,7 +52,7 @@ def test_match(tar_error, filename, script, fixed): | ||||
| @parametrize_script | ||||
| def test_side_effect(tar_error, filename, script, fixed): | ||||
|     tar_error(filename) | ||||
|     side_effect(Command(script=script.format(filename)), None) | ||||
|     side_effect(Command(script=script.format(filename)), None, None) | ||||
|     assert(os.listdir('.') == [filename]) | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -34,7 +34,7 @@ def test_match(zip_error, script): | ||||
|     'unzip foo', | ||||
|     'unzip foo.zip']) | ||||
| def test_side_effect(zip_error, script): | ||||
|     side_effect(Command(script=script), None) | ||||
|     side_effect(Command(script=script), None, None) | ||||
|     assert(os.listdir('.') == ['foo.zip']) | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -56,7 +56,7 @@ def test_match(ssh_error): | ||||
| def test_side_effect(ssh_error): | ||||
|     errormsg, path, reset, known_hosts = ssh_error | ||||
|     command = Command('ssh user@host', stderr=errormsg) | ||||
|     side_effect(command, None) | ||||
|     side_effect(command, None, None) | ||||
|     expected = ['123.234.567.890 asdjkasjdakjsd\n', '111.222.333.444 qwepoiwqepoiss\n'] | ||||
|     assert known_hosts(path) == expected | ||||
|  | ||||
|   | ||||
| @@ -74,10 +74,10 @@ def get_command(settings, args): | ||||
|             return types.Command(script, None, None) | ||||
|  | ||||
|  | ||||
| def run_command(command, settings): | ||||
| def run_command(old_cmd, command, settings): | ||||
|     """Runs command from rule for passed command.""" | ||||
|     if command.side_effect: | ||||
|         command.side_effect(command, settings) | ||||
|         command.side_effect(old_cmd, command.script, settings) | ||||
|     shells.put_to_history(command.script) | ||||
|     print(command.script) | ||||
|  | ||||
| @@ -100,7 +100,7 @@ def fix_command(): | ||||
|         corrected_commands = get_corrected_commands(command, user_dir, settings) | ||||
|         selected_command = select_command(corrected_commands, settings) | ||||
|         if selected_command: | ||||
|             run_command(selected_command, settings) | ||||
|             run_command(command, selected_command, settings) | ||||
|  | ||||
|  | ||||
| def print_alias(entry_point=True): | ||||
|   | ||||
| @@ -35,7 +35,7 @@ def get_new_command(command, settings): | ||||
|                  .format(dir=_tar_file(command.script)[1], cmd=command.script) | ||||
|  | ||||
|  | ||||
| def side_effect(command, settings): | ||||
|     with tarfile.TarFile(_tar_file(command.script)[0]) as archive: | ||||
| def side_effect(old_cmd, command, settings): | ||||
|     with tarfile.TarFile(_tar_file(old_cmd.script)[0]) as archive: | ||||
|         for file in archive.getnames(): | ||||
|             os.remove(file) | ||||
|   | ||||
| @@ -30,8 +30,8 @@ def get_new_command(command, settings): | ||||
|     return '{} -d {}'.format(command.script, _zip_file(command)[:-4]) | ||||
|  | ||||
|  | ||||
| def side_effect(command, settings): | ||||
|     with zipfile.ZipFile(_zip_file(command), 'r') as archive: | ||||
| def side_effect(old_cmd, command, settings): | ||||
|     with zipfile.ZipFile(_zip_file(old_cmd), 'r') as archive: | ||||
|         for file in archive.namelist(): | ||||
|             os.remove(file) | ||||
|  | ||||
|   | ||||
| @@ -26,8 +26,8 @@ def get_new_command(command, settings): | ||||
|     return command.script | ||||
|  | ||||
|  | ||||
| def side_effect(command, settings): | ||||
|     offending = offending_pattern.findall(command.stderr) | ||||
| def side_effect(old_cmd, command, settings): | ||||
|     offending = offending_pattern.findall(old_cmd.stderr) | ||||
|     for filepath, lineno in offending: | ||||
|         with open(filepath, 'r') as fh: | ||||
|             lines = fh.readlines() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user