handle SIGPIPE
This commit is contained in:
26
cmd/flush/flush.go
Normal file
26
cmd/flush/flush.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func main() {
|
||||
doOUt := true
|
||||
chSignal := make(chan os.Signal, 1)
|
||||
signal.Notify(chSignal, syscall.SIGPIPE)
|
||||
scanner := bufio.NewScanner(os.Stdin)
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
select {
|
||||
case <-chSignal:
|
||||
doOUt = false
|
||||
default:
|
||||
}
|
||||
if doOUt {
|
||||
os.Stdout.WriteString(line + "\n")
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user