github.com/10XDev/rclone@v1.52.3-0.20200626220027-16af9ab76b2a/fs/log/redirect_stderr_unix.go (about) 1 // Log the panic under unix to the log file 2 3 // +build !windows,!solaris,!plan9 4 5 package log 6 7 import ( 8 "log" 9 "os" 10 11 "github.com/rclone/rclone/fs/config" 12 "golang.org/x/sys/unix" 13 ) 14 15 // redirectStderr to the file passed in 16 func redirectStderr(f *os.File) { 17 passPromptFd, err := unix.Dup(int(os.Stderr.Fd())) 18 if err != nil { 19 log.Fatalf("Failed to duplicate stderr: %v", err) 20 } 21 config.PasswordPromptOutput = os.NewFile(uintptr(passPromptFd), "passPrompt") 22 err = unix.Dup2(int(f.Fd()), int(os.Stderr.Fd())) 23 if err != nil { 24 log.Fatalf("Failed to redirect stderr to file: %v", err) 25 } 26 }