#!/bin/sh #------------------------------------------------------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | www.openfoam.com # \\/ M anipulation | #------------------------------------------------------------------------------- # Copyright (C) 2016-2017 OpenFOAM Foundation # Copyright (C) 2020 OpenCFD Ltd. #------------------------------------------------------------------------------ # 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 3 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, see . # # Script # foamNewFunctionObject # # Description # Create directory with source and compilation files for a new function # object # #------------------------------------------------------------------------------ Script=${0##*/} DIR="$WM_PROJECT_DIR/etc/codeTemplates/functionObject" usage() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat< * Create directory with source and compilation files for a new function object (dir) - .H - .C - IO.H - Make (dir) - files - options Compiles a library named libFunctionObject.so in \$FOAM_USER_LIBBIN: $FOAM_USER_LIBBIN USAGE exit 1 } case "$1" in (-h | -help*) usage ;; -*) usage "$1 is not a valid option/filename" ;; esac [ "$#" -eq 1 ] || usage "Wrong number of arguments" [ -d "$1" ] && usage "$1 directory already exists, aborting..." NAME=$1 YEAR=$(date +%Y) echo "Creating function object code directory $NAME" && mkdir $NAME for F in $(ls ${DIR}/*.*) do FILE=$(basename $F | sed "s#FUNCTIONOBJECT#${NAME}#g") sed -e "s#FUNCTIONOBJECT#${NAME}#g" \ -e "s#YEAR#${YEAR}#g" \ ${F} > ${NAME}/${FILE} done echo "Creating Make subdirectory" && mkdir $NAME/Make sed "s#FUNCTIONOBJECT#${NAME}#g" ${DIR}/Make/files > $NAME/Make/files cp ${DIR}/Make/options $NAME/Make #------------------------------------------------------------------------------