blob: 72c4398c9c2236b33eb542e17592213b03ae1a85 [file] [log] [blame]
#!/usr/bin/env bash
#
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
CLANG_FORMAT=@@CLANG_FORMAT@@
MODE=@@MODE@@
WORKSPACE="@@WORKSPACE@@"
clang_format=$(realpath "$CLANG_FORMAT")
if [[ ! -z "${WORKSPACE}" ]]; then
REPO="$(dirname "$(realpath ${WORKSPACE})")"
cd ${REPO} || exit 1
elif [[ ! -z "${BUILD_WORKSPACE_DIRECTORY+is_set}" ]]; then
cd ${BUILD_WORKSPACE_DIRECTORY} || exit 1
else
echo "Neither WORKSPACE nor BUILD_WORKSPACE_DIRECTORY were set."
echo "If this is a test rule, add 'workspace = \"//:WORKSPACE\"' to your rule."
exit 1
fi
if [[ $# != 0 ]]; then
FILES="$*"
else
FILES=$(find . \
-type f \
@@EXCLUDE_PATTERNS@@ \
\( @@INCLUDE_PATTERNS@@ \) \
-print)
fi
case "$MODE" in
diff)
RESULT=0
for f in $FILES; do
diff -Naur "$f" <(${clang_format} ${f})
RESULT=$(($RESULT | $?))
done
exit $RESULT
;;
fix)
echo "$FILES" | xargs ${clang_format} -i
;;
*)
echo "Unknown mode: $MODE"
exit 1
esac