diff options
Diffstat (limited to 'shell.go')
| -rw-r--r-- | shell.go | 46 |
1 files changed, 23 insertions, 23 deletions
@@ -1,18 +1,17 @@ package shell import ( - "strings" - "time" - "os" - "os/exec" "bufio" "io/ioutil" + "os" + "os/exec" + "strings" + "time" - "go.wit.com/log" "github.com/svent/go-nbreader" + "go.wit.com/log" ) - // TODO: look at https://github.com/go-cmd/cmd/issues/20 // use go-cmd instead here? @@ -21,8 +20,9 @@ var callback func(interface{}, int) var shellStdout *os.File var shellStderr *os.File -var spewOn bool = false -var quiet bool = false +var spewOn bool = false +var quiet bool = false + // var msecDelay int = 20 // number of milliseconds to delay between reads with no data // var bytesBuffer bytes.Buffer @@ -30,13 +30,13 @@ var quiet bool = false func handleError(c interface{}, ret int) { log.Log(INFO, "shell.Run() Returned", ret) - if (callback != nil) { + if callback != nil { callback(c, ret) } } func init() { - callback = nil + callback = nil } func InitCallback(f func(interface{}, int)) { @@ -112,7 +112,7 @@ func nonBlockingReader(buffReader *bufio.Reader, writeFileHandle *os.File, stdou // newreader := bufio.NewReader(readFileHandle) // create a nonblocking GO reader - nbr := nbreader.NewNBReader(buffReader, 1024) + nbr := nbreader.NewNBReader(buffReader, 1024) for { // defer buffReader.Close() @@ -122,22 +122,22 @@ func nonBlockingReader(buffReader *bufio.Reader, writeFileHandle *os.File, stdou for { oneByte := make([]byte, 1024) count, err := nbr.Read(oneByte) - if (err != nil) { + if err != nil { log.Log(INFO, "count, err =", count, err) handleError(err, -1) return } totalCount += count - if (count == 0) { - time.Sleep(time.Duration(msecDelay) * time.Millisecond) // without this delay this will peg the CPU - if (totalCount != 0) { + if count == 0 { + time.Sleep(time.Duration(msecDelay) * time.Millisecond) // without this delay this will peg the CPU + if totalCount != 0 { log.Log(INFO, "STDERR: totalCount = ", totalCount) totalCount = 0 } } else { log.Log(INFO, "STDERR: count = ", count) writeFileHandle.Write(oneByte[0:count]) - if (quiet == false) { + if quiet == false { stdout.Write(oneByte[0:count]) stdout.Flush() } @@ -150,15 +150,15 @@ func nonBlockingReader(buffReader *bufio.Reader, writeFileHandle *os.File, stdou // TODO: pass STDOUT, STDERR, STDIN correctly // TODO: figure out how to nohup the process and exit func Exec(cmdline string) { - log.Log(INFO, "shell.Run() START " + cmdline) + log.Log(INFO, "shell.Run() START "+cmdline) - cmd := Chomp(cmdline) // this is like 'chomp' in perl - cmdArgs := strings.Fields(cmd) + cmd := Chomp(cmdline) // this is like 'chomp' in perl + cmdArgs := strings.Fields(cmd) - process := exec.Command(cmdArgs[0], cmdArgs[1:len(cmdArgs)]...) - process.Stderr = os.Stderr - process.Stdin = os.Stdin - process.Stdout = os.Stdout + process := exec.Command(cmdArgs[0], cmdArgs[1:len(cmdArgs)]...) + process.Stderr = os.Stderr + process.Stdin = os.Stdin + process.Stdout = os.Stdout process.Start() err := process.Wait() log.Log(INFO, "shell.Exec() err =", err) |
