github.com/grafana/tail@v0.0.0-20230510142333-77b18831edf0/tail_posix.go (about) 1 // +build linux darwin freebsd netbsd openbsd 2 3 package tail 4 5 import ( 6 "os" 7 "path/filepath" 8 ) 9 10 func OpenFile(name string) (file *os.File, err error) { 11 filename := name 12 // Check if the path requested is a symbolic link 13 fi, err := os.Lstat(name) 14 if err != nil { 15 return nil, err 16 } 17 if fi.Mode()&os.ModeSymlink == os.ModeSymlink { 18 filename, err = filepath.EvalSymlinks(name) 19 if err != nil { 20 return nil, err 21 } 22 } 23 return os.Open(filename) 24 }