xref: /aosp_15_r20/tools/netsim/scripts/format_code.sh (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
1*cf78ab8cSAndroid Build Coastguard Worker#!/bin/bash
2*cf78ab8cSAndroid Build Coastguard Worker# Copyright 2022 The Android Open Source Project
3*cf78ab8cSAndroid Build Coastguard Worker#
4*cf78ab8cSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
5*cf78ab8cSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
6*cf78ab8cSAndroid Build Coastguard Worker# You may obtain a copy of the License at
7*cf78ab8cSAndroid Build Coastguard Worker#
8*cf78ab8cSAndroid Build Coastguard Worker#      http://www.apache.org/licenses/LICENSE-2.0
9*cf78ab8cSAndroid Build Coastguard Worker#
10*cf78ab8cSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
11*cf78ab8cSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
12*cf78ab8cSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*cf78ab8cSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
14*cf78ab8cSAndroid Build Coastguard Worker# limitations under the License.
15*cf78ab8cSAndroid Build Coastguard Worker
16*cf78ab8cSAndroid Build Coastguard Worker# Formats source files according to Google's style guide.
17*cf78ab8cSAndroid Build Coastguard Worker
18*cf78ab8cSAndroid Build Coastguard WorkerREPO=$(dirname "$0")/../../..
19*cf78ab8cSAndroid Build Coastguard WorkerOS=$(uname | tr '[:upper:]' '[:lower:]') # The possible values are "linux" and "darwin".
20*cf78ab8cSAndroid Build Coastguard Worker
21*cf78ab8cSAndroid Build Coastguard Worker# Run clang-format.
22*cf78ab8cSAndroid Build Coastguard Workerfind $REPO/tools/netsim/src \( -name '*.cc' -o -name '*.h' \) \
23*cf78ab8cSAndroid Build Coastguard Worker  -exec clang-format -i {} \;
24*cf78ab8cSAndroid Build Coastguard Worker
25*cf78ab8cSAndroid Build Coastguard Workerfind $REPO/tools/netsim/proto \( -name '*.proto' \) \
26*cf78ab8cSAndroid Build Coastguard Worker  -exec clang-format -i {} \;
27*cf78ab8cSAndroid Build Coastguard Worker
28*cf78ab8cSAndroid Build Coastguard Worker# Format rust.
29*cf78ab8cSAndroid Build Coastguard WorkerRUSTFMT=$REPO/prebuilts/rust/$OS-x86/stable/rustfmt
30*cf78ab8cSAndroid Build Coastguard Workerfind $REPO/tools/netsim/rust \( \
31*cf78ab8cSAndroid Build Coastguard Worker  -path $REPO/tools/netsim/rust/target -prune -false \
32*cf78ab8cSAndroid Build Coastguard Worker  -o -name '*.rs' \) \
33*cf78ab8cSAndroid Build Coastguard Worker  -exec $RUSTFMT --files-with-diff {} \;
34*cf78ab8cSAndroid Build Coastguard Worker
35*cf78ab8cSAndroid Build Coastguard Worker# Format TypeScript.
36*cf78ab8cSAndroid Build Coastguard Workerfind $REPO/tools/netsim/ui/ts \( -name '*.ts' \) \
37*cf78ab8cSAndroid Build Coastguard Worker  -exec clang-format -i {} \;
38*cf78ab8cSAndroid Build Coastguard Worker
39*cf78ab8cSAndroid Build Coastguard Worker# Format Java (go/google-java-format).
40*cf78ab8cSAndroid Build Coastguard Workerfind $REPO/tools/netsim \( -name '*.java' \) \
41*cf78ab8cSAndroid Build Coastguard Worker  -exec google-java-format --dry-run {} \;
42*cf78ab8cSAndroid Build Coastguard Workerfind $REPO/tools/netsim \( -name '*.java' \) \
43*cf78ab8cSAndroid Build Coastguard Worker  -exec google-java-format -i {} \;
44*cf78ab8cSAndroid Build Coastguard Worker
45*cf78ab8cSAndroid Build Coastguard Worker# Format Python (go/pyformat).
46*cf78ab8cSAndroid Build Coastguard Workerpyformat --in_place --alsologtostderr --noshowprefixforinfo \
47*cf78ab8cSAndroid Build Coastguard Worker  --recursive $REPO/tools/netsim
48*cf78ab8cSAndroid Build Coastguard Worker
49*cf78ab8cSAndroid Build Coastguard Worker# Run cmake-format.
50*cf78ab8cSAndroid Build Coastguard Workerfind $REPO/tools/netsim \( -name 'CMakeLists.txt' \) \
51*cf78ab8cSAndroid Build Coastguard Worker  -exec cmake-format -i {} \;
52*cf78ab8cSAndroid Build Coastguard Workerfind $REPO/tools/netsim/cmake \( -name "*.cmake" \) \
53*cf78ab8cSAndroid Build Coastguard Worker  -exec cmake-format -i {} \;
54*cf78ab8cSAndroid Build Coastguard Worker
55*cf78ab8cSAndroid Build Coastguard Worker# Run bpfmt to format Android.bp if in aosp_master repo.
56*cf78ab8cSAndroid Build Coastguard WorkerBPFMT=$REPO/prebuilts/build-tools/$OS-x86/bin/bpfmt
57*cf78ab8cSAndroid Build Coastguard Workerif [ -f "$BPFMT" ]; then
58*cf78ab8cSAndroid Build Coastguard Worker  find $find \( -name "Android.bp" \) \
59*cf78ab8cSAndroid Build Coastguard Worker    -exec $BPFMT -w {} \;
60*cf78ab8cSAndroid Build Coastguard Workerfi
61