xref: /aosp_15_r20/external/libnl/tools/clang-format-container.sh (revision 4dc78e53d49367fa8e61b07018507c90983a077d)
1*4dc78e53SAndroid Build Coastguard Worker#!/bin/bash
2*4dc78e53SAndroid Build Coastguard Worker
3*4dc78e53SAndroid Build Coastguard Workerset -e
4*4dc78e53SAndroid Build Coastguard Worker
5*4dc78e53SAndroid Build Coastguard Workerdie() {
6*4dc78e53SAndroid Build Coastguard Worker    echo "$@" >&2
7*4dc78e53SAndroid Build Coastguard Worker    exit 1
8*4dc78e53SAndroid Build Coastguard Worker}
9*4dc78e53SAndroid Build Coastguard Worker
10*4dc78e53SAndroid Build Coastguard WorkerDIR="$(realpath "$(dirname "$0")/../")"
11*4dc78e53SAndroid Build Coastguard Workercd "$DIR"
12*4dc78e53SAndroid Build Coastguard Worker
13*4dc78e53SAndroid Build Coastguard Worker# The correct clang-format version is the one from the Fedora version used in our
14*4dc78e53SAndroid Build Coastguard Worker# github action pipeline. Parse it from ".github/workflows/ci.yml".
15*4dc78e53SAndroid Build Coastguard WorkerFEDORA_VERSION="$(sed -n 's/^      image: fedora:\([0-9]\+\)$/\1/p' .github/workflows/ci.yml)"
16*4dc78e53SAndroid Build Coastguard Worker
17*4dc78e53SAndroid Build Coastguard Workertest -n "$FEDORA_VERSION" || die "Could not detect the Fedora version in .github/workflows/ci.yml"
18*4dc78e53SAndroid Build Coastguard Worker
19*4dc78e53SAndroid Build Coastguard WorkerIMAGENAME="libnl-code-format-f$FEDORA_VERSION"
20*4dc78e53SAndroid Build Coastguard Worker
21*4dc78e53SAndroid Build Coastguard WorkerARGS=( "$@" )
22*4dc78e53SAndroid Build Coastguard Worker
23*4dc78e53SAndroid Build Coastguard Workerif ! podman image exists "$IMAGENAME" ; then
24*4dc78e53SAndroid Build Coastguard Worker    echo "Building image \"$IMAGENAME\"..."
25*4dc78e53SAndroid Build Coastguard Worker    podman build \
26*4dc78e53SAndroid Build Coastguard Worker        --squash-all \
27*4dc78e53SAndroid Build Coastguard Worker        --tag "$IMAGENAME" \
28*4dc78e53SAndroid Build Coastguard Worker        -f <(cat <<EOF
29*4dc78e53SAndroid Build Coastguard WorkerFROM fedora:$FEDORA_VERSION
30*4dc78e53SAndroid Build Coastguard WorkerRUN dnf upgrade -y
31*4dc78e53SAndroid Build Coastguard WorkerRUN dnf install -y git /usr/bin/clang-format
32*4dc78e53SAndroid Build Coastguard WorkerEOF
33*4dc78e53SAndroid Build Coastguard Worker)
34*4dc78e53SAndroid Build Coastguard Workerfi
35*4dc78e53SAndroid Build Coastguard Worker
36*4dc78e53SAndroid Build Coastguard WorkerCMD=( ./tools/clang-format.sh "${ARGS[@]}" )
37*4dc78e53SAndroid Build Coastguard Worker
38*4dc78e53SAndroid Build Coastguard Workerpodman run \
39*4dc78e53SAndroid Build Coastguard Worker    --rm \
40*4dc78e53SAndroid Build Coastguard Worker    --name "libnm-code-format-f$FEDORA_VERSION" \
41*4dc78e53SAndroid Build Coastguard Worker    -v "$DIR:/tmp/NetworkManager:Z" \
42*4dc78e53SAndroid Build Coastguard Worker    -w /tmp/NetworkManager \
43*4dc78e53SAndroid Build Coastguard Worker    -e "_LIBNL_CODE_FORMAT_CONTAINER=$IMAGENAME" \
44*4dc78e53SAndroid Build Coastguard Worker    -ti \
45*4dc78e53SAndroid Build Coastguard Worker    "$IMAGENAME" \
46*4dc78e53SAndroid Build Coastguard Worker    "${CMD[@]}"
47