mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
- this reduces the number of functions and allows lazy loading of
completion options, which makes it easy to quickly add any other
OpenFOAM application in completion.
The generic '_of_complete_' function handles (bash) completion for
any OpenFOAM application. On the first call for any particular
application, it retrieves the available options from the application
help output and adds this information to its environmental cache for
subsequent use.
- Tcsh completion uses the same function via a bash wrapper.
But since its wrapper is transient, the on-the-fly generation would
be less efficient. For this case, a pre-generated completion_cache
can be used, which is generated with
bin/tools/foamCreateCompletionCache
206 lines
5.8 KiB
Bash
206 lines
5.8 KiB
Bash
#----------------------------------*-sh-*--------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
|
# \\/ M anipulation | Copyright (C) 2016-2017 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 <http://www.gnu.org/licenses/>.
|
|
#
|
|
# File
|
|
# etc/config.sh/unset
|
|
#
|
|
# Description
|
|
# Clear as many OpenFOAM environment settings as possible
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
|
|
# Clean standard environment variables (PATH, LD_LIBRARY_PATH, MANPATH)
|
|
foamClean=$WM_PROJECT_DIR/bin/foamCleanPath
|
|
[ -f "$foamClean" -a -x "$foamClean" ] || unset foamClean
|
|
|
|
# The old dirs to be cleaned from the environment variables
|
|
foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR \
|
|
$HOME/$WM_PROJECT/$USER $FOAM_USER_APPBIN $FOAM_USER_LIBBIN \
|
|
$WM_PROJECT_SITE $FOAM_SITE_APPBIN $FOAM_SITE_LIBBIN $ParaView_DIR"
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset WM_* environment variables
|
|
|
|
unset WM_ARCH
|
|
unset WM_ARCH_OPTION
|
|
unset WM_CC
|
|
unset WM_CFLAGS
|
|
unset WM_COMPILER
|
|
unset WM_COMPILER_TYPE
|
|
unset WM_COMPILER_LIB_ARCH
|
|
unset WM_COMPILE_OPTION
|
|
unset WM_CXX
|
|
unset WM_CXXFLAGS
|
|
unset WM_DIR
|
|
unset WM_HOSTS
|
|
unset WM_LABEL_OPTION
|
|
unset WM_LABEL_SIZE
|
|
unset WM_LDFLAGS
|
|
unset WM_LINK_LANGUAGE
|
|
unset WM_MPLIB
|
|
unset WM_NCOMPPROCS
|
|
unset WM_OPTIONS
|
|
unset WM_OSTYPE
|
|
unset WM_PRECISION_OPTION
|
|
unset WM_PROJECT
|
|
unset WM_PROJECT_DIR
|
|
unset WM_PROJECT_INST_DIR
|
|
unset WM_PROJECT_SITE
|
|
unset WM_PROJECT_USER_DIR
|
|
unset WM_PROJECT_VERSION
|
|
unset WM_SCHEDULER
|
|
unset WM_THIRD_PARTY_DIR
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset FOAM_* environment variables
|
|
|
|
unset FOAM_APPBIN
|
|
unset FOAM_APP
|
|
unset FOAM_CODE_TEMPLATES
|
|
unset FOAM_ETC
|
|
unset FOAM_EXT_LIBBIN
|
|
unset FOAM_INST_DIR
|
|
unset FOAM_JOB_DIR
|
|
unset FOAM_LIBBIN
|
|
unset FOAM_MPI
|
|
unset FOAM_RUN
|
|
unset FOAM_SETTINGS
|
|
unset FOAM_SIGFPE
|
|
unset FOAM_SIGNAN
|
|
unset FOAM_SITE_APPBIN
|
|
unset FOAM_SITE_LIBBIN
|
|
unset FOAM_SOLVERS
|
|
unset FOAM_SRC
|
|
unset FOAM_TUTORIALS
|
|
unset FOAM_USER_APPBIN
|
|
unset FOAM_USER_LIBBIN
|
|
unset FOAM_UTILITIES
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset MPI-related environment variables
|
|
|
|
unset MPI_ARCH_PATH
|
|
unset MPI_BUFFER_SIZE
|
|
|
|
# Undefine OPAL_PREFIX if set to one of the paths on foamOldDirs
|
|
if [ -z "$($foamClean "$OPAL_PREFIX" "$foamOldDirs")" ]
|
|
then
|
|
unset OPAL_PREFIX
|
|
fi
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset Ensight/ParaView-related environment variables
|
|
|
|
unset ENSIGHT9_READER
|
|
unset ParaView_DIR
|
|
unset ParaView_INCLUDE_DIR
|
|
unset ParaView_MAJOR
|
|
unset ParaView_VERSION
|
|
unset PV_PLUGIN_PATH
|
|
unset VTK_DIR
|
|
|
|
#------------------------------------------------------------------------------
|
|
# unset other ThirdParty environment variables
|
|
|
|
unset ADIOS_ARCH_PATH
|
|
unset BOOST_ARCH_PATH
|
|
unset CCMIO_ARCH_PATH
|
|
unset CGAL_ARCH_PATH
|
|
unset FFTW_ARCH_PATH
|
|
unset GPERFTOOLS_ARCH_PATH
|
|
unset GMP_ARCH_PATH
|
|
unset MPFR_ARCH_PATH
|
|
unset MESA_ARCH_PATH
|
|
unset METIS_ARCH_PATH
|
|
unset SCOTCH_ARCH_PATH
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Cleanup environment
|
|
# PATH, LD_LIBRARY_PATH, MANPATH
|
|
|
|
if [ -n "$foamClean" ]
|
|
then
|
|
cleaned=$($foamClean "$PATH" "$foamOldDirs") && PATH="$cleaned"
|
|
cleaned=$($foamClean "$LD_LIBRARY_PATH" "$foamOldDirs") && LD_LIBRARY_PATH="$cleaned"
|
|
cleaned=$($foamClean "$MANPATH" "$foamOldDirs") && MANPATH="$cleaned"
|
|
fi
|
|
|
|
[ -n "$LD_LIBRARY_PATH" ] || unset LD_LIBRARY_PATH
|
|
[ -n "$LD_PRELOAD" ] || unset LD_PRELOAD
|
|
[ -n "$MANPATH" ] || unset MANPATH
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Cleanup aliases and functions
|
|
|
|
unalias wmSet 2>/dev/null
|
|
unalias wmInt32 2>/dev/null
|
|
unalias wmInt64 2>/dev/null
|
|
unalias wmSP 2>/dev/null
|
|
unalias wmDP 2>/dev/null
|
|
|
|
unalias wmUnset 2>/dev/null
|
|
|
|
unalias wmSchedOn 2>/dev/null
|
|
unalias wmSchedOff 2>/dev/null
|
|
|
|
unalias foam 2>/dev/null
|
|
unalias foamSite 2>/dev/null
|
|
|
|
unalias src 2>/dev/null
|
|
unalias lib 2>/dev/null
|
|
unalias app 2>/dev/null
|
|
unalias sol 2>/dev/null
|
|
unalias util 2>/dev/null
|
|
unalias tut 2>/dev/null
|
|
unalias run 2>/dev/null
|
|
|
|
unset -f wmRefresh 2>/dev/null
|
|
unset -f foamVersion 2>/dev/null
|
|
unset -f foamPV 2>/dev/null
|
|
|
|
# Remove old completions, which look like
|
|
# "complete ... -F _of_complete_ APPNAME
|
|
# For economy, obtain list first
|
|
foamOldDirs="$(complete 2>/dev/null | sed -ne 's/^.*-F _of_.* \(..*\)$/\1/p')"
|
|
for cleaned in $foamOldDirs
|
|
do
|
|
complete -r $cleaned 2>/dev/null
|
|
done
|
|
|
|
# Completion functions
|
|
unset -f foamAddCompletion 2>/dev/null
|
|
unset -f _of_complete_ 2>/dev/null
|
|
|
|
# Completion cache
|
|
unset _of_complete_cache_
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Intermediate variables (do as last for a clean exit code)
|
|
|
|
unset cleaned foamClean foamOldDirs
|
|
|
|
#------------------------------------------------------------------------------
|