summaryrefslogtreecommitdiffhomepage
path: root/tools/go.sh
diff options
context:
space:
mode:
authorAdin Scannell <ascannell@google.com>2020-05-19 21:01:23 -0700
committerAdin Scannell <ascannell@google.com>2020-07-09 16:59:43 -0700
commit2f24ab339736315659f26699ab50aa2982d7e890 (patch)
treec03149a945681ea272bd8a9ccc9f1b3d575eeb65 /tools/go.sh
parent60e19587cebc3cbc781088cc01080c71ad7900a0 (diff)
Allow arbitrary Go commands for go_mod.sh.
Diffstat (limited to 'tools/go.sh')
-rwxr-xr-xtools/go.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/go.sh b/tools/go.sh
new file mode 100755
index 000000000..b10ad18da
--- /dev/null
+++ b/tools/go.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Copyright 2020 The gVisor 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.
+
+set -eo pipefail
+
+# Build the :gopath target.
+make build TARGETS=":gopath"
+declare -r gopathdir="bazel-bin/gopath/src/gvisor.dev/gvisor/"
+
+# Copy go.mod and execute the command.
+cp -a go.mod go.sum "${gopathdir}"
+(cd "${gopathdir}" && go "$@")
+cp -a "${gopathdir}/go.mod" "${gopathdir}/go.sum" .
+
+# Cleanup the WORKSPACE file.
+make run TARGETS=":gazelle" ARGS="update-repos -from_file=go.mod"