fix stderr (stdout was wrong too)
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
954470c34c
commit
59c9bf88ca
Binary file not shown.
|
@ -3,24 +3,41 @@ package main
|
|||
/*
|
||||
import "log"
|
||||
import "reflect"
|
||||
import "os"
|
||||
*/
|
||||
|
||||
import "os"
|
||||
|
||||
// import "github.com/davecgh/go-spew/spew"
|
||||
|
||||
import "git.wit.com/jcarr/shell"
|
||||
|
||||
func main() {
|
||||
shell.SpewOn()
|
||||
|
||||
shell.Run("ls /tmp")
|
||||
|
||||
shell.Run("ping -c 4 localhost")
|
||||
shell.Run("ping -c 3 localhost")
|
||||
|
||||
// slow down the polling to every 2 seconds
|
||||
shell.SetDelayInMsec(2000)
|
||||
|
||||
shell.Run("ping -c 4 localhost")
|
||||
|
||||
// capture ping output into a file
|
||||
fout, _ := os.Create("/tmp/example1.ping.stdout")
|
||||
ferr, _ := os.Create("/tmp/example1.ping.stderr")
|
||||
shell.SetStdout(fout)
|
||||
shell.SetStderr(ferr)
|
||||
|
||||
shell.Run("ping -c 5 localhost")
|
||||
|
||||
// turn out process exit debugging
|
||||
shell.SpewOn()
|
||||
|
||||
fout, _ = os.Create("/tmp/example1.fail.stdout")
|
||||
ferr, _ = os.Create("/tmp/example1.fail.stderr")
|
||||
shell.SetStdout(fout)
|
||||
shell.SetStderr(ferr)
|
||||
|
||||
// TODO: this might not be working
|
||||
// check error handling
|
||||
shell.Run("ls /tmpthisisnothere")
|
||||
|
|
16
shell.go
16
shell.go
|
@ -90,8 +90,6 @@ func Run(cmdline string) int {
|
|||
newreader := bufio.NewReader(pstdout)
|
||||
nbr := nbreader.NewNBReader(newreader, 1024)
|
||||
|
||||
// nbrerr := nbreader.NewNBReader(newerrreader, 1024)
|
||||
|
||||
tmp := bufio.NewReader(pstderr)
|
||||
go NonBlockingReader(tmp, shellStderr)
|
||||
|
||||
|
@ -113,15 +111,19 @@ func Run(cmdline string) int {
|
|||
log.Println("Read() count = ", count, "err = ", err)
|
||||
oneByte = make([]byte, 1024)
|
||||
count, err = nbr.Read(oneByte)
|
||||
f.Write([]byte(string(oneByte)))
|
||||
log.Println("STDOUT: count = ", count)
|
||||
f.Write(oneByte[0:count])
|
||||
f.Flush()
|
||||
empty = true
|
||||
dead = true
|
||||
}
|
||||
f.Write([]byte(string(oneByte)))
|
||||
f.Flush()
|
||||
// f.Write([]byte(string(oneByte)))
|
||||
if (count == 0) {
|
||||
empty = true
|
||||
} else {
|
||||
log.Println("STDOUT: count = ", count)
|
||||
f.Write(oneByte[0:count])
|
||||
f.Flush()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -180,8 +182,10 @@ func NonBlockingReader(buffReader *bufio.Reader, writeFileHandle *os.File) {
|
|||
log.Println("STDERR: totalCount = ", totalCount)
|
||||
totalCount = 0
|
||||
}
|
||||
} else {
|
||||
log.Println("STDERR: count = ", count)
|
||||
writeFileHandle.Write(oneByte[0:count])
|
||||
}
|
||||
writeFileHandle.Write([]byte(string(oneByte)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue