1from thefuck.utils import for_app, get_close_matches, replace_command 2import re 3 4 5def _get_failed_lifecycle(command): 6 return re.search(r'\[ERROR\] Unknown lifecycle phase "(.+)"', 7 command.output) 8 9 10def _getavailable_lifecycles(command): 11 return re.search( 12 r'Available lifecycle phases are: (.+) -> \[Help 1\]', command.output) 13 14 15@for_app('mvn') 16def match(command): 17 failed_lifecycle = _get_failed_lifecycle(command) 18 available_lifecycles = _getavailable_lifecycles(command) 19 return available_lifecycles and failed_lifecycle 20 21 22def get_new_command(command): 23 failed_lifecycle = _get_failed_lifecycle(command) 24 available_lifecycles = _getavailable_lifecycles(command) 25 if available_lifecycles and failed_lifecycle: 26 selected_lifecycle = get_close_matches( 27 failed_lifecycle.group(1), available_lifecycles.group(1).split(", ")) 28 return replace_command(command, failed_lifecycle.group(1), selected_lifecycle) 29 else: 30 return [] 31