mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-18 20:11:17 +00:00
Added systemctl rule
This commit is contained in:
parent
c6aead735b
commit
360e4673eb
18
tests/rules/test_systemctl.py
Normal file
18
tests/rules/test_systemctl.py
Normal file
@ -0,0 +1,18 @@
|
||||
import pytest
|
||||
from thefuck.rules.systemctl import match, get_new_command
|
||||
from tests.utils import Command
|
||||
|
||||
|
||||
|
||||
def test_match():
|
||||
assert match(Command('systemctl nginx start', stderr='Unknown operation \'nginx\'.'), None)
|
||||
assert match(Command('sudo systemctl nginx start', stderr='Unknown operation \'nginx\'.'), None)
|
||||
assert not match(Command('systemctl start nginx'), None)
|
||||
assert not match(Command('systemctl start nginx'), None)
|
||||
assert not match(Command('sudo systemctl nginx', stderr='Unknown operation \'nginx\'.'), None)
|
||||
assert not match(Command('systemctl nginx', stderr='Unknown operation \'nginx\'.'), None)
|
||||
assert not match(Command('systemctl start wtf', stderr='Failed to start wtf.service: Unit wtf.service failed to load: No such file or directory.'), None)
|
||||
|
||||
def test_get_new_command():
|
||||
assert get_new_command(Command('systemctl nginx start'), None) == "systemctl start nginx"
|
||||
assert get_new_command(Command('sudo systemctl nginx start'), None) == "sudo systemctl start nginx"
|
16
thefuck/rules/systemctl.py
Normal file
16
thefuck/rules/systemctl.py
Normal file
@ -0,0 +1,16 @@
|
||||
"""
|
||||
The confusion in systemctl's param order is massive
|
||||
"""
|
||||
from thefuck.utils import sudo_support
|
||||
|
||||
@sudo_support
|
||||
def match(command, settings):
|
||||
#Catches 'Unknown operation 'service'.' when executing systemctl with misordered arguments
|
||||
cmd = command.script.split()
|
||||
return ('systemctl' in command.script) and ('Unknown operation \'' in command.stderr) and (len(cmd) - cmd.index('systemctl') == 3);
|
||||
|
||||
@sudo_support
|
||||
def get_new_command(command, settings):
|
||||
cmd = command.script.split()
|
||||
cmd[len(cmd)-1], cmd[len(cmd)-2] = cmd[len(cmd)-2], cmd[len(cmd)-1]
|
||||
return ' '.join(cmd)
|
Loading…
x
Reference in New Issue
Block a user