1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-03-14 14:48:49 +00:00

Add: Copy same code for older version, but with stderr.

This commit is contained in:
ik1ne 2019-08-02 12:57:12 +09:00
parent 01a5ba99d0
commit c8aebd887e

View File

@ -12,12 +12,25 @@ def match(command):
def get_docker_commands():
proc = subprocess.Popen('docker', stdout=subprocess.PIPE)
lines = [line.decode('utf-8') for line in proc.stdout.readlines()]
lines = dropwhile(lambda line: not line.startswith('Commands:'), lines)
lines = islice(lines, 1, None)
lines = list(takewhile(lambda line: line != '\n', lines))
return [line.strip().split(' ')[0] for line in lines]
proc = subprocess.Popen('docker', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
lines = proc.stdout.readlines()
# Old version docker returns its output to stdout
if lines:
lines = [line.decode('utf-8') for line in lines]
lines = dropwhile(lambda line: not line.startswith('Commands:'), lines)
lines = islice(lines, 1, None)
lines = list(takewhile(lambda line: line != '\n', lines))
return [line.strip().split(' ')[0] for line in lines]
# New version of docker returns its output to stderr
else:
lines = proc.stderr.readlines()
lines = [line.decode('utf-8') for line in lines]
lines = dropwhile(lambda line: not line.startswith('Commands:'), lines)
lines = islice(lines, 1, None)
lines = list(takewhile(lambda line: line != '\n', lines))
return [line.strip().split(' ')[0] for line in lines]
if which('docker'):