add shell.Exec() to execute and never return

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2019-06-09 14:29:50 -07:00
parent df1460aa69
commit 4736714c08
2 changed files with 21 additions and 0 deletions

View File

@ -16,6 +16,9 @@ import "github.com/svent/go-nbreader"
import log "github.com/sirupsen/logrus" import log "github.com/sirupsen/logrus"
// import "github.com/wercker/journalhook" // import "github.com/wercker/journalhook"
// TODO: look at https://github.com/go-cmd/cmd/issues/20
// use go-cmd instead here?
var callback func(interface{}, int) var callback func(interface{}, int)
var shellStdout *os.File var shellStdout *os.File
@ -251,3 +254,19 @@ func nonBlockingReader(buffReader *bufio.Reader, writeFileHandle *os.File, stdou
} }
} }
} }
// run something and never return from it
// TODO: pass STDOUT, STDERR, STDIN correctly
// TODO: figure out how to nohup the process and exit
func Exec(cmdline string) {
log.Println("shell.Run() START " + cmdline)
cmd := Chomp(cmdline) // this is like 'chomp' in perl
cmdArgs := strings.Fields(cmd)
process := exec.Command(cmdArgs[0], cmdArgs[1:len(cmdArgs)]...)
process.Start()
err := process.Wait()
log.Println("shell.Exec() err =", err)
os.Exit(0)
}

View File

@ -45,6 +45,8 @@ func Wget(url string) (*bytes.Buffer) {
} }
func WgetToFile(filepath string, url string) error { func WgetToFile(filepath string, url string) error {
log.Println("WgetToFile() filepath =", filepath)
log.Println("WgetToFile() URL =", url)
// Get the data // Get the data
resp, err := http.Get(url) resp, err := http.Get(url)
if err != nil { if err != nil {