#!/bin/bash
#---------------------------------*- sh -*-------------------------------------
# ==  == ====== ====   ====    |
#                   \\     ||  | Multiphase Code Repository by HZDR
# ======   //   ||  || ===//   | Website: https://doi.org/10.14278/rodare.767
# ||  ||  //    ||  // || \\   | License: GPL-3.0-or-later
# ==  == ====== ====   ==  ==  |
#------------------------------------------------------------------------------
# License
#     This file is part of the Multiphase Code Repository by HZDR.
#
#     Copyright (C) 2025 by Helmholtz-Zentrum Dresden-Rossendorf e.V. (HZDR),
#     Website: https://hzdr.de
#
#     Multiphase Code Repository by HZDR is based on the free software for
#     computational fluid dynamics (CFD) from the OpenFOAM Foundation.
#     Copyright (C) 2025 by OpenFOAM Foundation, Website: https://openfoam.org
#
#     If you are interested in which files are original OpenFOAM Foundation
#     files, which OpenFOAM Foundation files were modified, and which files were
#     newly created, see FILES.md.
#
#     Multiphase Code Repository by HZDR is free software: you can redistribute
#     it and/or modify it under the terms of the GNU General Public License as
#     published by the Free Software Foundation, either version 3 of the
#     License, or (at your option) any later version.
#
#     Multiphase Code Repository by HZDR is distributed in the hope that it will
#     be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
#     Public License for more details.
#
#     You should have received a copy of the GNU General Public License along
#     with the Multiphase Code Repository by HZDR. If not, see
#     <http://www.gnu.org/licenses/>.
#
# Script
#     doxyFilter
#
# Description
#     pass-through filter for doxygen
#
#     Special treatment for applications/{solvers,utilities}/*.C
#     - only keep the first comment block of the C source file
#       use @cond / @endcond to suppress documenting all classes/variables
#
#     Special treatment for applications/{solvers,utilities}/*.H
#     - use @cond / @endcond to suppress documenting all classes/variables
#
#------------------------------------------------------------------------------

if [ "$#" -gt 0 ]
then

    realFilePath=$(echo $1 | sed -e s@^$WM_PROJECT_SITE/$WM_PROJECT_VERSION@../../..@ )
    if [ -n "$FOAM_USER_ONLINE_REPO" ]
    then
        filePath=$(echo $1 | sed -e s@^$WM_PROJECT_SITE/$WM_PROJECT_VERSION@$FOAM_USER_ONLINE_REPO@ )
    else
        filePath=$realFilePath
    fi

    dirName=${filePath%/[^/]*}
    fileName=${filePath##*/}

    awkScript=$WM_PROJECT_DIR/bin/tools/doxyFilter.awk

    case "$1" in
    */applications/solvers/*.C | */applications/utilities/*.C )
        awkScript=$WM_PROJECT_DIR/bin/tools/doxyFilter-top.awk
        ;;
    esac

    sed -f $WM_PROJECT_DIR/bin/tools/doxyFilter-table.sed $1 | \
    awk -f $WM_PROJECT_DIR/bin/tools/doxyFilter-table.awk | \
    awk -f $awkScript  | \
    sed -f $WM_PROJECT_DIR/bin/tools/doxyFilter.sed \
        -e s@%realFilePath%@$realFilePath@g \
        -e s@%filePath%@$filePath@g \
        -e s@%fileName%@$fileName@g \
        -e s@%dirName%@$dirName@g
fi

#------------------------------------------------------------------------------
