cert-manager-webhook-sthome/sthome/shell.go

39 lines
687 B
Go

package sthome
import (
"log"
"os"
"os/exec"
"os/user"
"k8s.io/klog/v2"
)
func Execute(script string, command []string) (bool, error) {
currentUser, err := user.Current()
if err != nil {
log.Fatalf("CZ: Unable to get current user: %s", err)
}
klog.InfoS("CZ: Executing ", "user", currentUser.Name, "script", command)
cmd := &exec.Cmd{
Path: script,
Args: command,
Stdout: os.Stdout,
Stderr: os.Stderr,
}
err = cmd.Start()
if err != nil {
klog.Errorf("CZ: Script Start return error: %s\n", err)
return false, err
}
err = cmd.Wait()
if err != nil {
klog.Errorf("CZ: Script Wait return error: %s\n", err)
return false, err
}
return true, nil
}