104 lines
2.7 KiB
Bash
Executable File
104 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
# -----------------------------------------------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd.
|
|
# \\/ M anipulation |
|
|
# ------------------------------------------------------------------------------
|
|
# License
|
|
# This file is part of OpenFOAM.
|
|
#
|
|
# OpenFOAM 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 2 of the License, or (at your
|
|
# option) any later version.
|
|
#
|
|
# OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation,
|
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
#
|
|
# Script
|
|
# doxyClassPatch
|
|
#
|
|
# Description
|
|
# search for header files and fix up 'Class' section for doxygen
|
|
#
|
|
# change:
|
|
# |Class
|
|
# | className
|
|
# ->
|
|
# |Class
|
|
# | Foam::className
|
|
#
|
|
# change:
|
|
# |Class
|
|
# |
|
|
# ->
|
|
# |Class
|
|
# | Foam::(basename)
|
|
#
|
|
# leave untouched:
|
|
# |Class
|
|
# | Foam...
|
|
# and
|
|
# |Class
|
|
# | Namespace::className
|
|
#
|
|
#
|
|
# -----------------------------------------------------------------------------
|
|
backup=.unclassified
|
|
remove=no
|
|
|
|
for search
|
|
do
|
|
for file in $(
|
|
find -H $search \
|
|
-type f -name "*.H" \
|
|
-exec perl -ne \
|
|
'if (/^Class\s*$/) { $_ = <>; /(^\s*Foam|::)/ or print "$ARGV\n"; exit 0; }' \
|
|
\{\} \;
|
|
)
|
|
do
|
|
perl -i$backup -x $0 $file
|
|
if [ -f $file$backup ]
|
|
then
|
|
[ $file -nt $file$backup ] && touch -r $file$backup $file
|
|
[ "$remove" = yes ] && /bin/rm $file$backup 2>/dev/null
|
|
fi
|
|
done
|
|
done
|
|
|
|
exit 0
|
|
# ---------------------------------------------------------------- end-of-file
|
|
|
|
# embedded Perl program
|
|
#!/usr/bin/perl -wp
|
|
use strict;
|
|
|
|
my $namespace = "Foam::";
|
|
( my $class = $ARGV ) =~ s{^.*/|\.[A-Za-z]$}{}g;
|
|
|
|
if (/^Class\s*$/) {
|
|
print;
|
|
$_ = <>;
|
|
|
|
# provide a reasonable guess for empty classes
|
|
if (/^\s*$/) {
|
|
$_ = " $namespace$class\n";
|
|
warn "modified $ARGV\n";
|
|
}
|
|
elsif ( not /(^\s*Foam|::)/ ) {
|
|
s{^\s+|\s*$}{}g;
|
|
$_ = " $namespace$_\n";
|
|
warn "modified $ARGV\n";
|
|
}
|
|
}
|
|
|
|
# ---------------------------------------------------------------- end-of-file
|