- use complete -o filenames, dropped -o nospace to make it more responsive. - restructure completion code to use a unified backend, which makes it easier understand, maintain and re-use. - foamCreateBashCompletions now simply outputs to a stdout, and allows quick generation of completion of single applications. - add -fileHandler completion in anticipation of future changes there. - relocated as etc/config.s/bash_completion to prevent inadvertently having two versions (.com, .org) installed at the same time.
201 lines
5.7 KiB
Bash
201 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-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
|
|
|
|
# Cleanup bash completions, which look like this:
|
|
# "complete ... -F _of_APPNAME APPNAME
|
|
# For economy, obtain list first but also remove the 'of_complete_' backend
|
|
foamClean="$(complete 2>/dev/null | sed -n -e 's/complete.*-F _of_.* \(..*\)$/\1/p')"
|
|
for cleaned in $foamClean complete_
|
|
do
|
|
unset -f _of_$cleaned 2>/dev/null
|
|
complete -r $cleaned 2>/dev/null
|
|
done
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Intermediate variables (do as last for a clean exit code)
|
|
|
|
unset cleaned foamClean foamOldDirs
|
|
|
|
#------------------------------------------------------------------------------
|