From 32b03e95c99a8c5bda35aa1f6a602940c9f50754 Mon Sep 17 00:00:00 2001 From: Brice Figureau Date: Tue, 20 Mar 2018 13:51:27 +0100 Subject: [PATCH] Fix tailing named pipes It isn't possible to seek on named pipes (obviously), so better not try to... --- tail.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tail.go b/tail.go index c99cdaa2..7cb3e418 100644 --- a/tail.go +++ b/tail.go @@ -336,9 +336,13 @@ func (tail *Tail) tailFileSync() { // reopened if ReOpen is true. Truncated files are always reopened. func (tail *Tail) waitForChanges() error { if tail.changes == nil { - pos, err := tail.file.Seek(0, os.SEEK_CUR) - if err != nil { - return err + var pos int64 + var err error + if !tail.Pipe { + pos, err = tail.file.Seek(0, os.SEEK_CUR) + if err != nil { + return err + } } tail.changes, err = tail.watcher.ChangeEvents(&tail.Tomb, pos) if err != nil { @@ -389,6 +393,9 @@ func (tail *Tail) openReader() { } func (tail *Tail) seekEnd() error { + if !tail.Pipe { + return nil + } return tail.seekTo(SeekInfo{Offset: 0, Whence: os.SEEK_END}) }