Files
chronorunner/server/src/modules/wrapper/python.go
2025-05-27 14:06:29 +02:00

39 lines
890 B
Go

package wrapper
import (
"encoding/json"
"fmt"
"ghostrunner-server/modules/utilities"
"log"
"os"
"os/exec"
)
const (
pyFile = "./../runner/runner.py"
)
func PyListOnline(venvName string, pyArgs []string) (utilities.PyOnlineDevices, error) {
pyBin := fmt.Sprintf("./../runner/%s/bin/python", venvName)
runtimeArgs := append([]string{pyFile}, pyArgs...)
cmd := exec.Command(pyBin, runtimeArgs...)
rawData, err := cmd.CombinedOutput()
if err != nil {
cwd, _ := os.Getwd()
return utilities.PyOnlineDevices{}, fmt.Errorf("python execution failed, working directory: %s", cwd)
}
var data utilities.PyOnlineDevices
if err := json.Unmarshal(rawData, &data); err != nil {
return utilities.PyOnlineDevices{}, fmt.Errorf("error unmarshaling: %v", err)
}
return data, nil
}
func ExecCommand(nodeid, command string) {
log.Printf("Triggered %s, on %s", command, nodeid)
}