diff options
| author | Austin Clements <austin@google.com> | 2022-08-29 17:24:01 -0400 |
|---|---|---|
| committer | Austin Clements <austin@google.com> | 2022-09-16 15:08:31 +0000 |
| commit | d9f90df2b488b2fb7ca8c24d99f82878befb68f8 (patch) | |
| tree | ed362d91a375f49d97e3ee05afbb944db1f1b4c0 /src/cmd/dist | |
| parent | 88b51d2e630738f9396e3825eafd90d03727ec0d (diff) | |
| download | go-d9f90df2b488b2fb7ca8c24d99f82878befb68f8.tar.xz | |
cmd/dist: simplify exec.Cmd helpers
Now that the required Go bootstrap version is 1.17, we can simplify
some of the logic for working with exec.Cmd.Env as those APIs have
been simplified.
Updates #44505.
Change-Id: Ia62ab9830320c7daf65a15f2313471dfaba687b5
Reviewed-on: https://go-review.googlesource.com/c/go/+/427957
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Diffstat (limited to 'src/cmd/dist')
| -rw-r--r-- | src/cmd/dist/exec.go | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/src/cmd/dist/exec.go b/src/cmd/dist/exec.go index 67305530ae..43f503cb6c 100644 --- a/src/cmd/dist/exec.go +++ b/src/cmd/dist/exec.go @@ -17,23 +17,11 @@ func setDir(cmd *exec.Cmd, dir string) { } // setEnv sets cmd.Env so that key = value. -// -// It first removes any existing values for key, so it is safe to call -// even from within cmdbootstrap. func setEnv(cmd *exec.Cmd, key, value string) { kv := key + "=" + value if cmd.Env == nil { cmd.Env = os.Environ() } - - prefix := kv[:len(key)+1] - for i, entry := range cmd.Env { - if strings.HasPrefix(entry, prefix) { - cmd.Env[i] = kv - return - } - } - cmd.Env = append(cmd.Env, kv) } @@ -44,10 +32,13 @@ func unsetEnv(cmd *exec.Cmd, key string) { } prefix := key + "=" - for i, entry := range cmd.Env { + newEnv := []string{} + for _, entry := range cmd.Env { if strings.HasPrefix(entry, prefix) { - cmd.Env = append(cmd.Env[:i], cmd.Env[i+1:]...) - return + continue } + newEnv = append(newEnv, entry) + // key may appear multiple times, so keep going. } + cmd.Env = newEnv } |
