107 lines
2.2 KiB
Bash
Executable File
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
|
|
|
|
#------------------------------------------------------------------------------
|