Pārlūkot izejas kodu

Fix bug where confirmation prompt doesn't show due to line buffering

Signed-off-by: Aanand Prasad <[email protected]>
Aanand Prasad 9 gadi atpakaļ
vecāks
revīzija
0c8aeb9e05
1 mainītis faili ar 11 papildinājumiem un 1 dzēšanām
  1. 11 1
      compose/cli/utils.py

+ 11 - 1
compose/cli/utils.py

@@ -6,9 +6,9 @@ import os
 import platform
 import ssl
 import subprocess
+import sys
 
 import docker
-from six.moves import input
 
 import compose
 
@@ -42,6 +42,16 @@ def yesno(prompt, default=None):
         return None
 
 
+def input(prompt):
+    """
+    Version of input (raw_input in Python 2) which forces a flush of sys.stdout
+    to avoid problems where the prompt fails to appear due to line buffering
+    """
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline().rstrip(b'\n')
+
+
 def call_silently(*args, **kwargs):
     """
     Like subprocess.call(), but redirects stdout and stderr to /dev/null.