Skip to content

Commit

Permalink
Log command's stderr output
Browse files Browse the repository at this point in the history
  • Loading branch information
akash-akya committed Jul 4, 2020
1 parent f79eb52 commit acf6840
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
2 changes: 1 addition & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ func validateArgs(args []string) {
dieUsage(fmt.Sprintf("Invalid version specified: %v Supported version: %v", *protocolVersionFlag, ProtocolVersion))
}

logger.Printf("Flag values:\n dir: %v\n log: %v\n protocol_version: %v\n Args: %v\n", *cdFlag, *logFlag, *protocolVersionFlag, args)
logger.Printf("dir:%v, log:%v, protocol_version:%v, args:%v\n", *cdFlag, *logFlag, *protocolVersionFlag, args)
}

func notFifo(path string) bool {
Expand Down
25 changes: 23 additions & 2 deletions process.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,16 @@ func startCommandPipeline(proc *exec.Cmd, input <-chan Packet, inputDemand chan<
cmdOutput, err := proc.StdoutPipe()
fatalIf(err)

// cmdError, err := proc.StderrPipe()
// fatalIf(err)
cmdError, err := proc.StderrPipe()
fatalIf(err)

execErr := proc.Start()
fatalIf(execErr)

go writeToCommandStdin(cmdInput, input, inputDemand)

go printStderr(cmdError)

output := make(chan Packet)
go readCommandStdout(cmdOutput, outputDemand, output)

Expand Down Expand Up @@ -94,3 +96,22 @@ func readCommandStdout(cmdOutput io.ReadCloser, outputDemand <-chan Packet, outp
}
}
}

func printStderr(cmdError io.ReadCloser) {
var buf [BufferSize]byte

defer func() {
cmdError.Close()
}()

for {
bytesRead, readErr := cmdError.Read(buf[:])
if bytesRead > 0 {
logger.Printf(string(buf[:bytesRead]))
} else if readErr == io.EOF || bytesRead == 0 {
return
} else {
fatal(readErr)
}
}
}

0 comments on commit acf6840

Please sign in to comment.