- 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
213 lines
5.7 KiB
Bash
213 lines
5.7 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 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.csh/unset
|
|
#
|
|
# Description
|
|
# Clear as many OpenFOAM environment settings as possible
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
|
|
# Clean standard environment variables (PATH, LD_LIBRARY_PATH, MANPATH)
|
|
|
|
unset foamClean
|
|
if ( $?WM_PROJECT_DIR ) then
|
|
set foamClean=$WM_PROJECT_DIR/bin/foamCleanPath
|
|
if ( ! -f "$foamClean" || ! -x "$foamClean" ) unset foamClean
|
|
endif
|
|
|
|
# The old dirs to be cleaned from the environment variables
|
|
set foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR $HOME/$WM_PROJECT/$LOGNAME $FOAM_SITE_APPBIN $FOAM_SITE_LIBBIN"
|
|
if ( $?WM_PROJECT_SITE ) then
|
|
set foamOldDirs="$foamOldDirs $WM_PROJECT_SITE"
|
|
endif
|
|
if ( $?ParaView_DIR ) then
|
|
set foamOldDirs="$foamOldDirs $ParaView_DIR"
|
|
endif
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset WM_* environment variables
|
|
|
|
unsetenv WM_ARCH
|
|
unsetenv WM_ARCH_OPTION
|
|
unsetenv WM_CC
|
|
unsetenv WM_CFLAGS
|
|
unsetenv WM_COMPILER
|
|
unsetenv WM_COMPILER_TYPE
|
|
unsetenv WM_COMPILER_LIB_ARCH
|
|
unsetenv WM_COMPILE_OPTION
|
|
unsetenv WM_CXX
|
|
unsetenv WM_CXXFLAGS
|
|
unsetenv WM_DIR
|
|
unsetenv WM_HOSTS
|
|
unsetenv WM_LABEL_OPTION
|
|
unsetenv WM_LABEL_SIZE
|
|
unsetenv WM_LDFLAGS
|
|
unsetenv WM_LINK_LANGUAGE
|
|
unsetenv WM_MPLIB
|
|
unsetenv WM_NCOMPPROCS
|
|
unsetenv WM_OPTIONS
|
|
unsetenv WM_OSTYPE
|
|
unsetenv WM_PRECISION_OPTION
|
|
unsetenv WM_PROJECT
|
|
unsetenv WM_PROJECT_DIR
|
|
unsetenv WM_PROJECT_INST_DIR
|
|
unsetenv WM_PROJECT_SITE
|
|
unsetenv WM_PROJECT_USER_DIR
|
|
unsetenv WM_PROJECT_VERSION
|
|
unsetenv WM_SCHEDULER
|
|
unsetenv WM_THIRD_PARTY_DIR
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset FOAM_* environment variables
|
|
|
|
unsetenv FOAM_APPBIN
|
|
unsetenv FOAM_APP
|
|
unsetenv FOAM_CODE_TEMPLATES
|
|
unsetenv FOAM_ETC
|
|
unsetenv FOAM_EXT_LIBBIN
|
|
unsetenv FOAM_INST_DIR
|
|
unsetenv FOAM_JOB_DIR
|
|
unsetenv FOAM_LIBBIN
|
|
unsetenv FOAM_MPI
|
|
unsetenv FOAM_RUN
|
|
unsetenv FOAM_SETTINGS
|
|
unsetenv FOAM_SIGFPE
|
|
unsetenv FOAM_SIGNAN
|
|
unsetenv FOAM_SITE_APPBIN
|
|
unsetenv FOAM_SITE_LIBBIN
|
|
unsetenv FOAM_SOLVERS
|
|
unsetenv FOAM_SRC
|
|
unsetenv FOAM_TUTORIALS
|
|
unsetenv FOAM_USER_APPBIN
|
|
unsetenv FOAM_USER_LIBBIN
|
|
unsetenv FOAM_UTILITIES
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset MPI-related environment variables
|
|
|
|
unsetenv MPI_ARCH_PATH
|
|
unsetenv MPI_BUFFER_SIZE
|
|
unsetenv OPAL_PREFIX
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset Ensight/ParaView-related environment variables
|
|
|
|
unsetenv ENSIGHT9_READER
|
|
unsetenv ParaView_DIR
|
|
unsetenv ParaView_INCLUDE_DIR
|
|
unsetenv ParaView_MAJOR
|
|
unsetenv ParaView_VERSION
|
|
unsetenv PV_PLUGIN_PATH
|
|
unsetenv VTK_DIR
|
|
|
|
#------------------------------------------------------------------------------
|
|
# unset other ThirdParty environment variables
|
|
|
|
unsetenv ADIOS_ARCH_PATH
|
|
unsetenv BOOST_ARCH_PATH
|
|
unsetenv CCMIO_ARCH_PATH
|
|
unsetenv CGAL_ARCH_PATH
|
|
unsetenv FFTW_ARCH_PATH
|
|
unsetenv GPERFTOOLS_ARCH_PATH
|
|
unsetenv GMP_ARCH_PATH
|
|
unsetenv MPFR_ARCH_PATH
|
|
unsetenv MESA_ARCH_PATH
|
|
unsetenv METIS_ARCH_PATH
|
|
unsetenv SCOTCH_ARCH_PATH
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Cleanup environment
|
|
# PATH, LD_LIBRARY_PATH, MANPATH
|
|
|
|
if ( $?foamClean ) then
|
|
|
|
set cleaned=`$foamClean "$PATH" "$foamOldDirs"`
|
|
if ( $status == 0 ) setenv PATH $cleaned
|
|
|
|
if ($?LD_LIBRARY_PATH) then
|
|
set cleaned=`$foamClean "$LD_LIBRARY_PATH" "$foamOldDirs"`
|
|
if ( $status == 0 ) setenv LD_LIBRARY_PATH $cleaned
|
|
|
|
if ( ${%LD_LIBRARY_PATH} == 0 ) unsetenv LD_LIBRARY_PATH
|
|
endif
|
|
|
|
if ($?MANPATH) then
|
|
set cleaned=`$foamClean "$MANPATH" "$foamOldDirs"`
|
|
if ( $status == 0 ) setenv MANPATH $cleaned
|
|
|
|
if ( ${%MANPATH} == 0 ) unsetenv MANPATH
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Cleanup aliases
|
|
|
|
unalias wmSet
|
|
unalias wmInt32
|
|
unalias wmInt64
|
|
unalias wmSP
|
|
unalias wmDP
|
|
|
|
unalias wmUnset
|
|
|
|
unalias wmSchedOn
|
|
unalias wmSchedOff
|
|
|
|
unalias foam
|
|
unalias foamSite
|
|
|
|
unalias src
|
|
unalias lib
|
|
unalias app
|
|
unalias sol
|
|
unalias util
|
|
unalias tut
|
|
unalias run
|
|
|
|
unalias wmRefresh
|
|
unalias foamVersion
|
|
unalias foamPV
|
|
|
|
# Remove old completions, which look like:
|
|
# complete APPNAME 'p,*,`bash $WM_PROJECT_DIR/etc/ ...
|
|
if ($?prompt && $?tcsh) then # Interactive tcsh only
|
|
foreach cleaned (`complete | sed -ne '/WM_PROJECT/s/\t.*$//p'`)
|
|
uncomplete $cleaned
|
|
end
|
|
endif
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Intermediate variables (do as last for a clean exit code)
|
|
|
|
unset cleaned foamClean foamOldDirs
|
|
|
|
#------------------------------------------------------------------------------
|