mirror of https://github.com/docker/docs.git
				
				
				
			Windows: run -it not crash in ISE
Signed-off-by: John Howard <jhoward@microsoft.com>
This commit is contained in:
		
							parent
							
								
									86a7632d63
								
							
						
					
					
						commit
						486a1a03d8
					
				|  | @ -28,6 +28,7 @@ type ansiReader struct { | |||
| } | ||||
| 
 | ||||
| func newAnsiReader(nFile int) *ansiReader { | ||||
| 	initLogger() | ||||
| 	file, fd := winterm.GetStdFile(nFile) | ||||
| 	return &ansiReader{ | ||||
| 		file:    file, | ||||
|  |  | |||
|  | @ -3,16 +3,12 @@ | |||
| package windows | ||||
| 
 | ||||
| import ( | ||||
| 	"io/ioutil" | ||||
| 	"os" | ||||
| 
 | ||||
| 	ansiterm "github.com/Azure/go-ansiterm" | ||||
| 	"github.com/Azure/go-ansiterm/winterm" | ||||
| 	"github.com/Sirupsen/logrus" | ||||
| ) | ||||
| 
 | ||||
| var logger *logrus.Logger | ||||
| 
 | ||||
| // ansiWriter wraps a standard output file (e.g., os.Stdout) providing ANSI sequence translation.
 | ||||
| type ansiWriter struct { | ||||
| 	file           *os.File | ||||
|  | @ -25,18 +21,7 @@ type ansiWriter struct { | |||
| } | ||||
| 
 | ||||
| func newAnsiWriter(nFile int) *ansiWriter { | ||||
| 	logFile := ioutil.Discard | ||||
| 
 | ||||
| 	if isDebugEnv := os.Getenv(ansiterm.LogEnv); isDebugEnv == "1" { | ||||
| 		logFile, _ = os.Create("ansiReaderWriter.log") | ||||
| 	} | ||||
| 
 | ||||
| 	logger = &logrus.Logger{ | ||||
| 		Out:       logFile, | ||||
| 		Formatter: new(logrus.TextFormatter), | ||||
| 		Level:     logrus.DebugLevel, | ||||
| 	} | ||||
| 
 | ||||
| 	initLogger() | ||||
| 	file, fd := winterm.GetStdFile(nFile) | ||||
| 	info, err := winterm.GetConsoleScreenBufferInfo(fd) | ||||
| 	if err != nil { | ||||
|  |  | |||
|  | @ -3,3 +3,31 @@ | |||
| // and return pseudo-streams that convert ANSI sequences to / from Windows Console API calls.
 | ||||
| 
 | ||||
| package windows | ||||
| 
 | ||||
| import ( | ||||
| 	"io/ioutil" | ||||
| 	"os" | ||||
| 	"sync" | ||||
| 
 | ||||
| 	ansiterm "github.com/Azure/go-ansiterm" | ||||
| 	"github.com/Sirupsen/logrus" | ||||
| ) | ||||
| 
 | ||||
| var logger *logrus.Logger | ||||
| var initOnce sync.Once | ||||
| 
 | ||||
| func initLogger() { | ||||
| 	initOnce.Do(func() { | ||||
| 		logFile := ioutil.Discard | ||||
| 
 | ||||
| 		if isDebugEnv := os.Getenv(ansiterm.LogEnv); isDebugEnv == "1" { | ||||
| 			logFile, _ = os.Create("ansiReaderWriter.log") | ||||
| 		} | ||||
| 
 | ||||
| 		logger = &logrus.Logger{ | ||||
| 			Out:       logFile, | ||||
| 			Formatter: new(logrus.TextFormatter), | ||||
| 			Level:     logrus.DebugLevel, | ||||
| 		} | ||||
| 	}) | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue