1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-01-31 02:01:13 +00:00
This commit is contained in:
spidermanir 2019-10-05 02:08:45 +03:30
commit bf3454d272
6 changed files with 21 additions and 5 deletions

View File

@ -116,6 +116,8 @@ def test_get_operations(set_help, app, help_text, operations):
apt_get_help, 'apt-get install vim'),
('apt saerch vim', invalid_operation('saerch'),
apt_help, 'apt search vim'),
('apt uninstall vim', invalid_operation('uninstall'),
apt_help, 'apt remove vim'),
])
def test_get_new_command(set_help, output, script, help_text, result):
set_help(help_text)

View File

@ -184,6 +184,8 @@ def test_get_operations(set_help):
'dnf install vim'),
('dnf saerch vim', invalid_command('saerch'),
'dnf search vim'),
('dnf uninstall vim', invalid_command('uninstall'),
'dnf remove vim'),
])
def test_get_new_command(set_help, output, script, result):
set_help(help_text)

View File

@ -39,6 +39,11 @@ def test_not_match(command):
(b'', []),
(b'* master', ['master']),
(b' remotes/origin/master', ['master']),
(b' remotes/origin/test/1', ['test/1']),
(b' remotes/origin/test/1/2/3', ['test/1/2/3']),
(b' test/1', ['test/1']),
(b' test/1/2/3', ['test/1/2/3']),
(b' remotes/origin/HEAD -> origin/master', []),
(b' just-another-branch', ['just-another-branch']),
(b'* master\n just-another-branch', ['master', 'just-another-branch']),
(b'* master\n remotes/origin/master\n just-another-branch',

View File

@ -53,5 +53,10 @@ def _get_operations(app):
@sudo_support
def get_new_command(command):
invalid_operation = command.output.split()[-1]
operations = _get_operations(command.script_parts[0])
return replace_command(command, invalid_operation, operations)
if invalid_operation == 'uninstall':
return [command.script.replace('uninstall', 'remove')]
else:
operations = _get_operations(command.script_parts[0])
return replace_command(command, invalid_operation, operations)

View File

@ -18,10 +18,12 @@ def get_branches():
stdout=subprocess.PIPE)
for line in proc.stdout.readlines():
line = line.decode('utf-8')
if '->' in line: # Remote HEAD like b' remotes/origin/HEAD -> origin/master'
continue
if line.startswith('*'):
line = line.split(' ')[1]
if '/' in line:
line = line.split('/')[-1]
if line.strip().startswith('remotes/'):
line = '/'.join(line.split('/')[2:])
yield line.strip()

View File

@ -21,7 +21,7 @@ patterns = ['permission denied',
'edspermissionerror',
'you don\'t have write permissions',
'use `sudo`',
'SudoRequiredError',
'sudorequirederror',
'error: insufficient privileges']