blob: 4be0fe83a7e7d44eca8eeb9b487f782027ed8f5c [file] [log] [blame]
Copyright 2020 The Monogon Project Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
From 6313aef65ed37aa971737058af391f5be1ae976c Mon Sep 17 00:00:00 2001
From: Lorenz Brun <lorenz@nexantic.com>
Date: Wed, 3 Feb 2021 18:11:03 +0100
Subject: [PATCH] Don't use run_shell with list as cmd
Going upstream at https://github.com/kubernetes/repo-infra/pull/225
---
defs/go.bzl | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/defs/go.bzl b/defs/go.bzl
index 21cffdd..f4617e1 100644
--- a/defs/go.bzl
+++ b/defs/go.bzl
@@ -63,16 +63,7 @@ def _go_genrule_impl(ctx):
srcs = [src for srcs in ctx.attr.srcs for src in srcs.files.to_list()]
- deps = depset(
- gopath_files + srcs,
- transitive =
- # tools
- [dep.files for dep in ctx.attr.tools] +
- # go toolchain
- [depset(go.sdk.libs + go.sdk.srcs + go.sdk.tools + [go.sdk.go])],
- )
-
- _, cmd, _ = ctx.resolve_command(
+ inputs, cmd, input_manifests = ctx.resolve_command(
command = ctx.attr.cmd,
attribute = "cmd",
expand_locations = True,
@@ -83,6 +74,15 @@ def _go_genrule_impl(ctx):
tools = ctx.attr.tools,
)
+ deps = depset(
+ gopath_files + srcs + inputs,
+ transitive =
+ # tools
+ [dep.files for dep in ctx.attr.tools] +
+ # go toolchain
+ [depset(go.sdk.libs + go.sdk.srcs + go.sdk.tools + [go.sdk.go])],
+ )
+
env = dict()
env.update(ctx.configuration.default_shell_env)
env.update(go.env)
@@ -92,11 +92,13 @@ def _go_genrule_impl(ctx):
"GOROOT": paths.dirname(go.sdk.root_file.path),
})
- ctx.actions.run_shell(
+ ctx.actions.run(
inputs = deps,
outputs = ctx.outputs.outs,
env = env,
- command = cmd,
+ executable = cmd[0],
+ arguments = cmd[1:],
+ input_manifests = input_manifests,
progress_message = "%s %s" % (ctx.attr.message, ctx),
mnemonic = "GoGenrule",
)
--
2.25.1