github.com/aarzilli/tools@v0.0.0-20151123112009-0d27094f75e0/os/osutilpb/exec_cmd.go (about)

     1  package osutilpb
     2  
     3  import (
     4  	"log"
     5  	"os/exec"
     6  )
     7  
     8  // http://stackoverflow.com/questions/10385551/get-exit-code-go
     9  func ExecCmdWithExitCode(name string, args ...string) (success bool) {
    10  
    11  	success = true
    12  
    13  	command := exec.Command(name, args...)
    14  
    15  	if err := command.Start(); err != nil {
    16  		log.Fatalf("command.Start: %v", err)
    17  	}
    18  
    19  	if err := command.Wait(); err != nil {
    20  		if exiterr, ok := err.(*exec.ExitError); ok {
    21  			log.Printf("exit err: %v  - %v %v", exiterr, name, args)
    22  			// The program has exited with an exit code != 0
    23  			success = false
    24  		} else {
    25  			log.Fatalf("command.Wait: %v, success dubious", err)
    26  		}
    27  	}
    28  
    29  	return
    30  }