#!/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@@

clang_format=$(readlink "$CLANG_FORMAT")

if ! cd "$BUILD_WORKSPACE_DIRECTORY"; then
    echo "Unable to change to workspace (BUILD_WORKSPACE_DIRECTORY: ${BUILD_WORKSPACE_DIRECTORY})"
    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 2
esac
