package sthome import ( "os" "os/exec" //"bytes" "k8s.io/klog/v2" ) type saveOutput struct { buffer []byte } func (so *saveOutput) Write(p []byte) (n int, err error) { so.buffer = append(so.buffer, p...) return os.Stdout.Write(p) } func Execute(shell string, command []string) (bool, error) { var so saveOutput //var buffer bytes.Buffer /* currentUser, err := user.Current() if err != nil { klog.Fatalf("CZ: Unable to get current user: %s", err) } klog.Infof("CZ: Executing as user %s : %s %v\n", currentUser.Name, shell, command) */ cmd := &exec.Cmd{ Path: shell, Args: command, } cmd.Stdin = os.Stdin cmd.Stdout = &so //&buffer cmd.Stderr = os.Stderr err := cmd.Run() if err != nil { klog.Errorf("Script return error: %s\n%s\n", err, string(so.buffer)) return false, err } klog.Infof("Script returned success:\n%s\n", string(so.buffer)) return true, nil }