40 lines
721 B
Go
40 lines
721 B
Go
package sthome
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"os/exec"
|
|
"os/user"
|
|
|
|
"k8s.io/klog/v2"
|
|
)
|
|
|
|
func Execute(dir string, 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{
|
|
Dir: dir,
|
|
Path: script,
|
|
Args: command,
|
|
Stdout: os.Stdout,
|
|
Stderr: os.Stderr,
|
|
}
|
|
|
|
err = cmd.Run()
|
|
if err != nil {
|
|
klog.Errorf("CZ: Script run 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
|
|
}
|