aboutsummaryrefslogtreecommitdiff
path: root/go/tools/go_bin_runner/process.go
blob: af236549986742862f38dc68e917b1a2f198f2ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
}