package daemon

import (
	"io"
	"os"
	"strings"
)

func logOutput(stderr *os.File, logPath string, rotatedLog io.Writer) io.Writer {
	if stderrTargetsPath(stderr, logPath) {
		return rotatedLog
	}
	return io.MultiWriter(stderr, rotatedLog)
}

func stderrTargetsPath(stderr *os.File, logPath string) bool {
	if stderr == nil || strings.TrimSpace(logPath) == "" {
		return false
	}
	stderrInfo, err := stderr.Stat()
	if err != nil {
		return false
	}
	logInfo, err := os.Stat(logPath)
	if err != nil {
		return false
	}
	return os.SameFile(stderrInfo, logInfo)
}
