1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-04-19 17:20:39 +01:00
thefuck/thefuck/rules/dnf_no_such_command.py

38 lines
963 B
Python

import subprocess
import re
from thefuck.specific.sudo import sudo_support
from thefuck.utils import for_app, replace_command
from thefuck.specific.dnf import dnf_available
regex = re.compile(r'No such command: (.*)\.')
@sudo_support
@for_app('dnf')
def match(command):
return 'no such command' in command.output.lower()
def _parse_operations(help_text_lines):
operation_regex = re.compile(r'^([a-z-]+) +', re.MULTILINE)
return operation_regex.findall(help_text_lines)
def _get_operations():
proc = subprocess.Popen(["dnf", '--help'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
lines = proc.stdout.read().decode("utf-8")
return _parse_operations(lines)
@sudo_support
def get_new_command(command):
misspelled_command = regex.findall(command.output)[0]
return replace_command(command, misspelled_command, _get_operations())
enabled_by_default = dnf_available