Files
chronorunner/server/src/modules/wrapper/python.go

32 lines
714 B
Go
Raw Normal View History

2025-05-26 16:24:06 +02:00
package wrapper
import (
"encoding/json"
"fmt"
"ghostrunner-server/modules/utilities"
"os"
"os/exec"
)
const (
pyFile = "./../runner/runner.py"
)
func PyListOnline(venvName string) (utilities.PyOnlineDevices, error) {
pyBin := fmt.Sprintf("./../runner/%s/bin/python", venvName)
cmd := exec.Command(pyBin, pyFile, "-lo")
2025-05-26 16:24:06 +02:00
rawData, err := cmd.CombinedOutput()
2025-05-26 16:24:06 +02:00
if err != nil {
cwd, _ := os.Getwd()
return utilities.PyOnlineDevices{}, fmt.Errorf("python execution failed, working directory: %s", cwd)
2025-05-26 16:24:06 +02:00
}
var data utilities.PyOnlineDevices
if err := json.Unmarshal(rawData, &data); err != nil {
return utilities.PyOnlineDevices{}, fmt.Errorf("error unmarshaling: %v", err)
2025-05-26 16:24:06 +02:00
}
return data, nil
2025-05-26 16:24:06 +02:00
}