2015-02-28 03:51:17 +11:00
|
|
|
// Log the panic under unix to the log file
|
|
|
|
|
2020-08-01 04:57:48 +10:00
|
|
|
// +build !windows,!solaris,!plan9,!js
|
2015-02-28 03:51:17 +11:00
|
|
|
|
2018-01-13 03:30:54 +11:00
|
|
|
package log
|
2015-02-28 03:51:17 +11:00
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
|
|
|
"os"
|
2016-09-08 06:21:58 +10:00
|
|
|
|
2019-07-29 03:47:38 +10:00
|
|
|
"github.com/rclone/rclone/fs/config"
|
2016-09-08 06:21:58 +10:00
|
|
|
"golang.org/x/sys/unix"
|
2015-02-28 03:51:17 +11:00
|
|
|
)
|
|
|
|
|
|
|
|
// redirectStderr to the file passed in
|
|
|
|
func redirectStderr(f *os.File) {
|
2018-06-10 08:27:42 +10:00
|
|
|
passPromptFd, err := unix.Dup(int(os.Stderr.Fd()))
|
|
|
|
if err != nil {
|
|
|
|
log.Fatalf("Failed to duplicate stderr: %v", err)
|
|
|
|
}
|
|
|
|
config.PasswordPromptOutput = os.NewFile(uintptr(passPromptFd), "passPrompt")
|
|
|
|
err = unix.Dup2(int(f.Fd()), int(os.Stderr.Fd()))
|
2015-02-28 03:51:17 +11:00
|
|
|
if err != nil {
|
|
|
|
log.Fatalf("Failed to redirect stderr to file: %v", err)
|
|
|
|
}
|
|
|
|
}
|