blob: c2079e231a16ae42b6e4047b6e75cfa3a67cf6d7 [file] [log] [blame]
Jeffrey van Gogh0c624852016-08-01 16:10:07 -07001#!/bin/bash -e
2
3# Bazel build target for running kythe extractor as an extra_action
4# to create kythe index files as a side effect of running the build.
5EAL=//prebuilts/tools/linux-x86_64/kythe/extractors:extract_kindex
6
7# Path to the kyth binaries.
8KYTHE_ROOT="$(readlink -f prebuilts/tools/linux-x86_64/kythe)"
9
10# Get the output path for the kythe artifacts.
11OUT="$1"
12if [ -z "${OUT}" ]; then
Jeffrey van Gogh16adda22016-08-23 15:22:36 -070013 echo Usage: $0 \<out_dir\> [gcs_bucket]
Jeffrey van Gogh0c624852016-08-01 16:10:07 -070014 echo e.g. $0 $HOME/studio_kythe
15 echo
16 echo $0 must be launched from the root of the studio branch.
17 exit 1
18fi
Jeffrey van Goghfb57b0f2016-08-23 18:00:33 -070019
20if [ -z "${JDK_18_x64}" ]; then
21 echo $0 requires the JDK_18_x64 env variable to be defined.
22 exit 1
23fi
24
Jeffrey van Gogh0c624852016-08-01 16:10:07 -070025OUT_ENTRIES="${OUT}/entries"
26mkdir -p "${OUT_ENTRIES}"
27
Jeffrey van Gogh16adda22016-08-23 15:22:36 -070028TARGETS="$(cat tools/base/bazel/build_targets)"
Jeffrey van Gogh0c624852016-08-01 16:10:07 -070029
30# Build all targets and run the kythe extractor via extra_actions.
Jeffrey van Gogh115d73e2016-08-23 16:14:26 -070031tools/base/bazel/bazel build \
Jeffrey van Gogh0c624852016-08-01 16:10:07 -070032 --experimental_action_listener=${EAL} -- ${TARGETS}
33
34# Find all generated kythe index files.
35KINDEXES=$(find bazel-out/local-fastbuild/extra_actions/ \
36 -name *.kindex -exec realpath {} \;)
37
38# For each kythe index file run the java index to generate kythe
39# entries.
40cd "${OUT_ENTRIES}"
41for KINDEX in ${KINDEXES}; do
42 ENTRIES="$(basename "${KINDEX}").entries"
43 if [ ! -f "${ENTRIES}" ]; then
Jeffrey van Goghfb57b0f2016-08-23 18:00:33 -070044 "${JDK_18_x64}/bin/java" -jar \
45 "${KYTHE_ROOT}/indexers/java_indexer.jar" \
Jeffrey van Gogh0c624852016-08-01 16:10:07 -070046 "${KINDEX}" > "${ENTRIES}"
47 fi
48done;
Jeffrey van Gogh16adda22016-08-23 15:22:36 -070049
50GSBUCKET="$2"
51if [ -n "${GSBUCKET}" ]; then
52 TIMESTAMP=$(date +'%s')
53 gsutil -m cp "${OUT_ENTRIES}/*" "${GSBUCKET}/${TIMESTAMP}/"
54fi