summaryrefslogtreecommitdiff
path: root/shell.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-25 00:39:14 -0600
committerJeff Carr <[email protected]>2024-01-25 00:39:14 -0600
commit41fe4a4659d50d70a835224405490588019d24ff (patch)
treedd6677fb17d11a4233568fddf0d3a141434bba10 /shell.go
parente24c2c2eb3feb5083a74a9b2cb396bcbcb0ac52d (diff)
new homev0.13.0
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'shell.go')
-rw-r--r--shell.go46
1 files changed, 23 insertions, 23 deletions
diff --git a/shell.go b/shell.go
index dcba03b..0ca2de3 100644
--- a/shell.go
+++ b/shell.go
@@ -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)