github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/lib/dream/methods.go (about) 1 package dreamLib 2 3 import ( 4 "os" 5 "os/exec" 6 "strings" 7 8 "github.com/taubyte/tau-cli/constants" 9 ) 10 11 func IsRunning() bool { 12 out, err := ExecuteWithCapture("status", "id") 13 if err != nil { 14 return false 15 } 16 17 return strings.Contains(out, "SUCCESS") 18 } 19 20 func dream(args ...string) (*exec.Cmd, error) { 21 binaryLoc := os.Getenv(constants.DreamBinaryLocationEnvVarName) 22 if len(binaryLoc) < 1 { 23 // Attempts to run command that is on path 24 binaryLoc = "dream" 25 } 26 27 // TODO confirm binary 28 // dreamI18n.Help().IsAValidBinary() 29 30 return exec.Command(binaryLoc, args...), nil 31 } 32 33 func Execute(args ...string) error { 34 cmd, err := dream(args...) 35 if err != nil { 36 return err 37 } 38 39 cmd.Stdout = os.Stdout 40 cmd.Stderr = os.Stderr 41 42 if err := cmd.Start(); err != nil { 43 return err 44 45 } 46 47 if err := cmd.Wait(); err != nil { 48 return err 49 } 50 51 return nil 52 } 53 54 func ExecuteWithCapture(args ...string) (string, error) { 55 cmd, err := dream(args...) 56 if err != nil { 57 return "", err 58 } 59 60 outBytes, err := cmd.Output() 61 if err != nil { 62 return "", err 63 } 64 65 return string(outBytes), nil 66 }