openfoam/etc/codeTemplates/source/foamNewSource
2023-05-10 18:23:13 +02:00

107 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | www.openfoam.com
# \\/ M anipulation |
#-------------------------------------------------------------------------------
# Copyright (C) 2011-2017 OpenFOAM Foundation
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
#
# Script
# foamNewSource
#
# Description
# Create a new standard OpenFOAM source file
#
#------------------------------------------------------------------------------
Script=${0##*/}
Template="$WM_PROJECT_DIR/etc/codeTemplates/source/_Template"
usage() {
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<<USAGE
Usage: $Script [OPTION] <type> <ClassName>
options:
-help print the usage
* create a new standard OpenFOAM source file
type: (C|H|I|IO|App)
A ClassName starting with '-' will simply display the template
USAGE
exit 1
}
className="$2"
unset subType Type printOpt
# for a className starting with '-' simply display the code
if [ "${2#-}" != "${2}" ]
then
printOpt=true
fi
# this implicitly covers a lone -help
[ "$#" -gt 1 ] || usage
case "$1" in
(-h | -help*)
usage
;;
(C|H)
Type=".$1"
;;
(I)
Type="$1.H"
;;
(IO)
Type="$1.C"
;;
(app|App)
subType=App
Type=".C"
;;
(*)
usage "unknown type '$1'"
;;
esac
[ "$#" -eq 2 ] || usage "wrong number of arguments"
shift 2
if [ "${printOpt:-false}" = true ]
then
cat "$Template$subType$Type"
else
fileName="$className$Type"
echo "$Script: Creating new code file $fileName"
if [ -e "$fileName" ]
then
echo " Error: file exists"
exit 1
fi
# process class name
sed -e "s/CLASSNAME/$className/g" \
-e "s/YEAR/$(date +%Y)/g" \
"$Template$subType$Type" > "$fileName"
if [ "$subType" = App -a ! -d Make ]
then
"${WM_DIR:-$WM_PROJECT_DIR/wmake}/scripts/wmakeFilesAndOptions"
fi
fi
#------------------------------------------------------------------------------