aboutsummaryrefslogtreecommitdiff
path: root/go/tools/go_bin_runner/process.go
blob: 8b344c9612d4ce464669af2954d84d7983a06c39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//go:build !unix

package main

import (
	"os"
	"os/exec"
)

func ReplaceWithProcess(args, env []string) error {
	cmd := exec.Command(args[0], args[1:]...)
	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr
	cmd.Env = env
	err := cmd.Run()
	if exitErr, ok := err.(*exec.ExitError); ok {
		os.Exit(exitErr.ExitCode())
	} else if err == nil {
		os.Exit(0)
	}
	return err
}