hugin/cli/internal/localmcp/exec_windows.go
2026-10-27 08:33:21 +01:00

26 lines
540 B
Go

//go:build windows
package localmcp
import (
"errors"
"os"
"os/exec"
)
// Exec startet den Server als Kindprozess (Windows kennt kein exec), reicht Ein- und
// Ausgabe durch und endet mit seinem Rückgabewert.
func Exec(program string, args, env []string) error {
c := exec.Command(program, args...)
c.Env, c.Stdin, c.Stdout, c.Stderr = env, os.Stdin, os.Stdout, os.Stderr
err := c.Run()
var exit *exec.ExitError
if errors.As(err, &exit) {
os.Exit(exit.ExitCode())
}
if err != nil {
return err
}
os.Exit(0)
return nil
}