func main() {
r, w := io.Pipe()
cmd := exec.Command("python", "-u", "script.py")
cmd.Stdout = w
err := cmd.Start()
if err != nil {
log.Fatal("error starting command:", err)
}
bufr := bufio.NewReader(r)
for {
line, err := bufr.ReadString('\n')
if err != nil {
if err == io.EOF {
break
}
log.Fatal("error reading line", err)
}
fmt.Print(line)
}
// Wait обязательно нужно вызвать если пользуетесь cmd.Start
// это написано в документации к Start
err = cmd.Wait()
if err != nil {
log.Fatal("error processing command:", err)
}
}
вот тут всякие c,c++,go,rust и прочая экзотика, не шибко поддерживаемая коммунити становятся не таким привлекательными.
code := map[string]interface{}{
var unmarshaled interface{}
switch typeStr {
case "facebook":
unmarshaled = Facebook{}
case "twitter":
unmarshaled = Twitter{}
default:
return errors.New("unknown type")
}
err := json.Unmarshal(rawData, unmarshaled)
if err != nil {
return errors.WithMessage(err, "json unmarshal")
}
cmd := exec.Command("cmd", "/C", "start", path)