aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/dist
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2022-08-29 17:24:01 -0400
committerAustin Clements <austin@google.com>2022-09-16 15:08:31 +0000
commitd9f90df2b488b2fb7ca8c24d99f82878befb68f8 (patch)
treeed362d91a375f49d97e3ee05afbb944db1f1b4c0 /src/cmd/dist
parent88b51d2e630738f9396e3825eafd90d03727ec0d (diff)
downloadgo-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.go21
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
}