#!/bin/sh #------------------------------------------------------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | Website: https://openfoam.org # \\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation # \\/ 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 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 # foamNewApp # # Description # Create directory with source and compilation files for a new application # #------------------------------------------------------------------------------ Script=${0##*/} dir="$FOAM_ETC/codeTemplates/app" usage() { cat< options: -help | -h print the usage Create directory with source and compilation files for a new application (dir) - .C - Make (dir) - files - options Compiles an executable named in \$FOAM_USER_APPBIN: $FOAM_USER_APPBIN USAGE } error() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done usage exit 1 } case "$1" in (-help | -h) usage && exit 0 ;; -*) error "$1 is not a valid filename" ;; esac [ "$#" -eq 1 ] || error "Wrong number of arguments" [ -d "$1" ] && error "$1 directory already exists, aborting..." app=$1 year=$(date +%Y) echo "Creating application code directory ${app}" && mkdir "${app}" sed -e "s#NAME#${app}#g" \ -e "s#YEAR#${year}#g" \ "${dir}/app.C" > "${app}/${app}.C" echo "Creating Make subdirectory" && mkdir "${app}/Make" sed "s#NAME#${app}#g" "${dir}/Make/files" > "${app}/Make/files" cp "${dir}/Make/options" "${app}/Make" #------------------------------------------------------------------------------