xref: /aosp_15_r20/development/vndk/tools/header-checker/android/update_clang-tools.sh (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
1*90c8c64dSAndroid Build Coastguard Worker#!/bin/bash -eu
2*90c8c64dSAndroid Build Coastguard Worker
3*90c8c64dSAndroid Build Coastguard Worker# Copyright (C) 2019 The Android Open Source Project
4*90c8c64dSAndroid Build Coastguard Worker#
5*90c8c64dSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
6*90c8c64dSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
7*90c8c64dSAndroid Build Coastguard Worker# You may obtain a copy of the License at
8*90c8c64dSAndroid Build Coastguard Worker#
9*90c8c64dSAndroid Build Coastguard Worker#      http://www.apache.org/licenses/LICENSE-2.0
10*90c8c64dSAndroid Build Coastguard Worker#
11*90c8c64dSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
12*90c8c64dSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
13*90c8c64dSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*90c8c64dSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
15*90c8c64dSAndroid Build Coastguard Worker# limitations under the License.
16*90c8c64dSAndroid Build Coastguard Worker
17*90c8c64dSAndroid Build Coastguard Workerif [ -z "${ANDROID_BUILD_TOP:-}" ]; then
18*90c8c64dSAndroid Build Coastguard Worker  echo 1>&2 "ANDROID_BUILD_TOP must be defined"
19*90c8c64dSAndroid Build Coastguard Worker  exit 1
20*90c8c64dSAndroid Build Coastguard Workerfi
21*90c8c64dSAndroid Build Coastguard Worker
22*90c8c64dSAndroid Build Coastguard WorkerBUILD_ID="${1:-}"
23*90c8c64dSAndroid Build Coastguard Workerif [ -z "${BUILD_ID}" ]; then
24*90c8c64dSAndroid Build Coastguard Worker  echo 1>&2 "Usage: $0 <buildid>"
25*90c8c64dSAndroid Build Coastguard Worker  exit 1
26*90c8c64dSAndroid Build Coastguard Workerfi
27*90c8c64dSAndroid Build Coastguard Worker
28*90c8c64dSAndroid Build Coastguard WorkerFETCH_ARTIFACT="/google/data/ro/projects/android/fetch_artifact"
29*90c8c64dSAndroid Build Coastguard WorkerCLANG_TOOLS_DIR="${ANDROID_BUILD_TOP}/prebuilts/clang-tools"
30*90c8c64dSAndroid Build Coastguard Worker
31*90c8c64dSAndroid Build Coastguard Worker
32*90c8c64dSAndroid Build Coastguard Workerupdate_manifest () {
33*90c8c64dSAndroid Build Coastguard Worker  cd "${CLANG_TOOLS_DIR}"
34*90c8c64dSAndroid Build Coastguard Worker  "${FETCH_ARTIFACT}" --bid "${BUILD_ID}" --target "linux" \
35*90c8c64dSAndroid Build Coastguard Worker    "manifest_${BUILD_ID}.xml"
36*90c8c64dSAndroid Build Coastguard Worker  mv "manifest_${BUILD_ID}.xml" "manifest.xml"
37*90c8c64dSAndroid Build Coastguard Worker  rm .fetch* || true
38*90c8c64dSAndroid Build Coastguard Worker}
39*90c8c64dSAndroid Build Coastguard Worker
40*90c8c64dSAndroid Build Coastguard Worker
41*90c8c64dSAndroid Build Coastguard Workerupdate_prebuilts () {
42*90c8c64dSAndroid Build Coastguard Worker  local name="$1"
43*90c8c64dSAndroid Build Coastguard Worker  local target="$2"
44*90c8c64dSAndroid Build Coastguard Worker
45*90c8c64dSAndroid Build Coastguard Worker  cd "${CLANG_TOOLS_DIR}"
46*90c8c64dSAndroid Build Coastguard Worker
47*90c8c64dSAndroid Build Coastguard Worker  # Remove the old directory and create an empty one
48*90c8c64dSAndroid Build Coastguard Worker  if [ -d "${name}" ]; then
49*90c8c64dSAndroid Build Coastguard Worker    git rm -rf "${name}"
50*90c8c64dSAndroid Build Coastguard Worker  fi
51*90c8c64dSAndroid Build Coastguard Worker  mkdir -p "${name}"
52*90c8c64dSAndroid Build Coastguard Worker
53*90c8c64dSAndroid Build Coastguard Worker  cd "${name}"
54*90c8c64dSAndroid Build Coastguard Worker
55*90c8c64dSAndroid Build Coastguard Worker  # Download and extract prebuilts from the build server
56*90c8c64dSAndroid Build Coastguard Worker  "${FETCH_ARTIFACT}" --bid "${BUILD_ID}" --target "${target}" \
57*90c8c64dSAndroid Build Coastguard Worker    "build-prebuilts.zip"
58*90c8c64dSAndroid Build Coastguard Worker  unzip -o "build-prebuilts.zip"
59*90c8c64dSAndroid Build Coastguard Worker  rm "build-prebuilts.zip"
60*90c8c64dSAndroid Build Coastguard Worker  rm .fetch* || true
61*90c8c64dSAndroid Build Coastguard Worker
62*90c8c64dSAndroid Build Coastguard Worker  find . | xargs touch
63*90c8c64dSAndroid Build Coastguard Worker}
64*90c8c64dSAndroid Build Coastguard Worker
65*90c8c64dSAndroid Build Coastguard Worker
66*90c8c64dSAndroid Build Coastguard Workercommit () {
67*90c8c64dSAndroid Build Coastguard Worker  cd "${CLANG_TOOLS_DIR}"
68*90c8c64dSAndroid Build Coastguard Worker  echo "Update clang-tools to ab/${BUILD_ID}" > "/tmp/clang-tools-update.msg"
69*90c8c64dSAndroid Build Coastguard Worker  git add manifest.xml linux-x86
70*90c8c64dSAndroid Build Coastguard Worker  git commit -a -t "/tmp/clang-tools-update.msg"
71*90c8c64dSAndroid Build Coastguard Worker}
72*90c8c64dSAndroid Build Coastguard Worker
73*90c8c64dSAndroid Build Coastguard Worker
74*90c8c64dSAndroid Build Coastguard Workercd "${CLANG_TOOLS_DIR}"
75*90c8c64dSAndroid Build Coastguard Workerrepo start "update_${BUILD_ID}" .
76*90c8c64dSAndroid Build Coastguard Worker
77*90c8c64dSAndroid Build Coastguard Workerupdate_manifest
78*90c8c64dSAndroid Build Coastguard Workerupdate_prebuilts "linux-x86" "linux"
79*90c8c64dSAndroid Build Coastguard Workercommit
80