github.com/wowker/tail@v0.0.0-20210121082357-fe86e3c1032a/cmd/gotail/gotail.go (about) 1 // Copyright (c) 2015 HPE Software Inc. All rights reserved. 2 // Copyright (c) 2013 ActiveState Software Inc. All rights reserved. 3 4 package main 5 // 6 //import ( 7 // "flag" 8 // "fmt" 9 // "os" 10 // 11 // "github.com/hpcloud/tail" 12 //) 13 // 14 //func args2config() (tail.Config, int64) { 15 // config := tail.Config{Follow: true} 16 // n := int64(0) 17 // maxlinesize := int(0) 18 // flag.Int64Var(&n, "n", 0, "tail from the last Nth location") 19 // flag.IntVar(&maxlinesize, "max", 0, "max line size") 20 // flag.BoolVar(&config.Follow, "f", false, "wait for additional data to be appended to the file") 21 // flag.BoolVar(&config.ReOpen, "F", false, "follow, and track file rename/rotation") 22 // flag.BoolVar(&config.Poll, "p", false, "use polling, instead of inotify") 23 // flag.Parse() 24 // if config.ReOpen { 25 // config.Follow = true 26 // } 27 // config.MaxLineSize = maxlinesize 28 // return config, n 29 //} 30 // 31 //func main() { 32 // config, n := args2config() 33 // if flag.NFlag() < 1 { 34 // fmt.Println("need one or more files as arguments") 35 // os.Exit(1) 36 // } 37 // 38 // if n != 0 { 39 // config.Location = &tail.SeekInfo{-n, os.SEEK_END} 40 // } 41 // 42 // done := make(chan bool) 43 // for _, filename := range flag.Args() { 44 // go tailFile(filename, config, done) 45 // } 46 // 47 // for _, _ = range flag.Args() { 48 // <-done 49 // } 50 //} 51 // 52 //func tailFile(filename string, config tail.Config, done chan bool) { 53 // defer func() { done <- true }() 54 // t, err := tail.TailFile(filename, config) 55 // if err != nil { 56 // fmt.Println(err) 57 // return 58 // } 59 // for line := range t.Lines { 60 // fmt.Println(line.Text) 61 // } 62 // err = t.Wait() 63 // if err != nil { 64 // fmt.Println(err) 65 // } 66 //}