28 lines
442 B
Go
28 lines
442 B
Go
//go:build windows
|
|
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
|
|
"golang.org/x/sys/windows"
|
|
)
|
|
|
|
func redirectProcessStdStreamsToFile(f *os.File) error {
|
|
if f == nil {
|
|
return nil
|
|
}
|
|
|
|
handle := windows.Handle(f.Fd())
|
|
if err := windows.SetStdHandle(windows.STD_OUTPUT_HANDLE, handle); err != nil {
|
|
return err
|
|
}
|
|
if err := windows.SetStdHandle(windows.STD_ERROR_HANDLE, handle); err != nil {
|
|
return err
|
|
}
|
|
|
|
os.Stdout = f
|
|
os.Stderr = f
|
|
return nil
|
|
}
|