diff --git a/bin/tools/foamGrepExeTargets b/bin/tools/foamGrepExeTargets new file mode 100755 index 0000000000..b6b353d7fe --- /dev/null +++ b/bin/tools/foamGrepExeTargets @@ -0,0 +1,119 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2016 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 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 +# foamGrepExeTargets +# +# Description +# Trivial script to lists all "EXE =" targets for solvers and utilities. +# Uses git for the grep operation. +# +# Examples +# Confirm that all available EXE targets have actually been created: +# +# foamGrepExeTargets > targets-available +# foamGrepExeTargets -appbin > targets-created +# diff -uw targets-available targets-created +# +#------------------------------------------------------------------------------ +usage() { + exec 1>&2 + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + cat<&2 + echo + echo "Error encountered:" + while [ "$#" -ge 1 ]; do echo " $1"; shift; done + echo + echo "See '${0##*/} -help' for usage" + echo + exit 1 +} + +#------------------------------------------------------------------------------ + +unset projectdir +for i in "./.git" "$WM_PROJECT_DIR/.git" +do + if [ -d "$i" ] + then + projectdir="${i%/*}" + break + fi +done + + +# Parse options +while [ "$#" -gt 0 ] +do + case "$1" in + -h | -help) + usage + ;; + + -appbin) + test -n "$FOAM_APPBIN" && cd "$FOAM_APPBIN" || \ + die "FOAM_APPBIN is not valid" + + /bin/ls -1 + exit 0 + ;; + *) + die "unknown option/argument: '$1'" + ;; + esac +done + +# Default is grep (via git) + +[ -d "$projectdir" ] || \ + die "Cannot locate OpenFOAM project, or it does not have a git directory" + + +# Run from top-level directory - otherwise the grep is quite difficult +# A version with 'find' is likewise possible, but not as fast. + +# Check 'src' too, in case somehow something is there as well. +( + cd "$projectdir" && \ + git grep --cached -P '^\s*EXE\s*=' \ + applications/solvers \ + applications/utilities \ + src +) | sed -e 's@.*/@@' | sort | uniq + +# -----------------------------------------------------------------------------