aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts
diff options
context:
space:
mode:
authorGravatar Florian Weikert <fwe@google.com>2017-02-02 11:28:31 +0000
committerGravatar Yun Peng <pcloudy@google.com>2017-02-02 17:00:10 +0000
commitcd8dde77ad57ade56d8dd153b1d9abd35fef46a7 (patch)
tree06f67f8a4f4aeec2ae4ff1a10967ceb7abba9c91 /scripts
parentd5649814525d62d787a1dbeb596ef6ac5d2c7d38 (diff)
-- PiperOrigin-RevId: 146347158 MOS_MIGRATED_REVID=146347158
Diffstat (limited to 'scripts')
-rw-r--r--scripts/BUILD15
-rwxr-xr-xscripts/generate_bash_completion.sh77
2 files changed, 7 insertions, 85 deletions
diff --git a/scripts/BUILD b/scripts/BUILD
index 7c782cc760..decf702cfc 100644
--- a/scripts/BUILD
+++ b/scripts/BUILD
@@ -8,16 +8,15 @@ genrule(
name = "bash_completion",
srcs = ["bazel-complete-template.bash"],
outs = ["bazel-complete.bash"],
- cmd = " ".join([
- "$(location :generate_bash_completion.sh)",
- "--bazel=$(location //src:bazel)",
- "--javabase=$(JAVABASE)",
- "--output=$@",
- "--prepend=$(location bazel-complete-template.bash)",
- ]),
+ cmd = "cat $(SRCS) > $@\n" +
+ "touch err.log\n" +
+ "TMP=`mktemp -d $${TMPDIR:-/tmp}/tmp.XXXXXXXXXX`\n" +
+ "trap \"rm -fr err.log $${TMP}\" EXIT\n" +
+ "$(location //src:bazel) " +
+ " --batch --output_user_root=$${TMP} --host_javabase=$(JAVABASE) " +
+ " help completion 2>err.log >>$@ || { cat err.log; exit 1; }",
output_to_bindir = 1,
tools = [
- ":generate_bash_completion.sh",
"//src:bazel",
"//tools/defaults:jdk",
],
diff --git a/scripts/generate_bash_completion.sh b/scripts/generate_bash_completion.sh
deleted file mode 100755
index 83851e39ff..0000000000
--- a/scripts/generate_bash_completion.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-#
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# 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.
-
-#
-# Generates the Bash completion script for Bazel.
-#
-# At a minimum, you must pass the --bazel and --output flags to specify the path
-# to the Bazel binary to use and the output file to generate.
-#
-# Callers can customize the completion script by passing additional files with
-# the --prepend and --append flags, which are stitched together to generate the
-# final completion script. Prepended files can override built-in variables and
-# appended files can override built-in functions.
-#
-
-set -e
-
-die() {
- echo "${@}" 1>&2
- exit 1
-}
-
-get_optarg() {
- expr "${1}" : "[^=]*=\\(.*\\)"
-}
-
-append=
-bazel=
-javabase=
-output=
-prepend=
-while [ ${#} -gt 0 ]; do
- case "${1}" in
- --append=*) append="${append} $(get_optarg "${1}")" ;;
- --bazel=*) bazel="$(get_optarg "${1}")" ;;
- --javabase=*) javabase="$(get_optarg "${1}")" ;;
- --output=*) output="$(get_optarg "${1}")" ;;
- --prepend=*) prepend="${prepend} $(get_optarg "${1}")" ;;
- --*) die "Unknown option ${1}" ;;
- *) break ;;
- esac
- shift
-done
-[ ${#} -eq 0 ] || die "No arguments allowed"
-[ -n "${bazel}" ] || die "--bazel required but not provided"
-[ -n "${output}" ] || die "--output required but not provided"
-
-tempdir="$(mktemp -d "${TMPDIR:-/tmp}/generate_bash_completion.XXXXXXXX")"
-trap "rm -rf '${tempdir}'" EXIT
-
-touch "${tempdir}/WORKSPACE"
-mkdir "${tempdir}/root"
-
-[ -z "${prepend}" ] || cat ${prepend} >>"${tempdir}/output"
-
-host_javabase_flag=
-[ -z "${javabase}" ] || host_javabase_flag="--host_javabase=${javabase}"
-"${bazel}" --output_user_root="${tempdir}/root" ${host_javabase_flag} \
- help completion >>"${tempdir}/output"
-
-[ -z "${append}" ] || cat ${append} >>"${tempdir}/output"
-
-rm -f "${output}"
-mv "${tempdir}/output" "${output}"