def get_new_command(command): for idx, arg in enumerate(command.script_parts[1:]): # allowed params to ADB are a/d/e/s/H/P/L where s, H, P and L take additional args # for example 'adb -s 111 logcat' or 'adb -e logcat' if not arg[0] == '-' and not command.script_parts[idx] in ('-s', '-H', '-P', '-L'): adb_cmd = get_closest(arg, _ADB_COMMANDS) return replace_argument(command.script, arg, adb_cmd)
def match(command): is_proper_command = ('brew' in command.script and 'Unknown command' in command.output) if is_proper_command: broken_cmd = re.findall(r'Error: Unknown command: ([a-z]+)', command.output)[0] return bool(get_closest(broken_cmd, _brew_commands())) return False
def get_new_command(command): stash_cmd = command.script_parts[2] fixed = utils.get_closest(stash_cmd, stash_commands, fallback_to_first=False) if fixed is not None: return replace_argument(command.script, stash_cmd, fixed) else: cmd = command.script_parts[:] cmd.insert(2, 'save') return ' '.join(cmd)
def get_new_command(command): not_found_commands = _get_between(command.output, 'Warning: Command(s) not found:', 'Available commands:') possible_commands = _get_between(command.output, 'Available commands:') script = command.script for not_found in not_found_commands: fix = get_closest(not_found, possible_commands) script = script.replace(' {}'.format(not_found), ' {}'.format(fix)) return script
def get_new_command(command): missing_file = re.findall( r"error: pathspec '([^']*)' " r"did not match any file\(s\) known to git.", command.output)[0] closest_branch = utils.get_closest(missing_file, get_branches(), fallback_to_first=False) if closest_branch: return replace_argument(command.script, missing_file, closest_branch) elif command.script_parts[1] == 'checkout': return replace_argument(command.script, 'checkout', 'checkout -b') else: return shell.and_('git branch {}', '{}').format(missing_file, command.script)
def get_new_command(command): old_command = command.script_parts[0] # One from history: already_used = get_closest(old_command, _get_used_executables(command), fallback_to_first=False) if already_used: new_cmds = [already_used] else: new_cmds = [] # Other from all executables: new_cmds += [ cmd for cmd in get_close_matches(old_command, get_all_executables()) if cmd not in new_cmds ] return [ ' '.join([new_command] + command.script_parts[1:]) for new_command in new_cmds ]
def test_without_fallback(self): assert get_closest('st', ['status', 'reset'], fallback_to_first=False) is None
def test_when_cant_match(self): assert 'status' == get_closest('st', ['status', 'reset'])
def test_when_can_match(self): assert 'branch' == get_closest('brnch', ['branch', 'status'])
def _get_similar_formula(formula_name): return get_closest(formula_name, _get_formulas(), cutoff=0.85)
def get_new_command(command): npm_commands = _get_available_commands(command.output) wrong_command = _get_wrong_command(command.script_parts) fixed = get_closest(wrong_command, npm_commands) return replace_argument(command.script, wrong_command, fixed)
def get_new_command(command): misspelled_task = regex.findall(command.output)[0].split(':')[0] tasks = _get_all_tasks() fixed = get_closest(misspelled_task, tasks) return command.script.replace(' {}'.format(misspelled_task), ' {}'.format(fixed))
def get_new_command(command): return get_closest(command.script, get_valid_history_without_current(command))
def get_new_command(command): script = command.script_parts[:] possibilities = extract_possibilities(command) script[1] = get_closest(script[1], possibilities) return ' '.join(script)