load only base and any host when coming from ssh

master
Kebler Network System Administrator 2022-05-02 10:46:41 -07:00
parent 1778ddca3e
commit 9d7e07a113
3 changed files with 27 additions and 7 deletions

20
load.sh
View File

@ -24,11 +24,29 @@ unset BASH_SHELL_BASE_LOADED
unset BASH_SHELL_LOADED unset BASH_SHELL_LOADED
module_load shell-process-directory module_load shell-process-directory
if [[ $SSH_SESSION ]]; then
# ssh session only process base by default
# env | grep SSH
# echo ssh session bash load
# TODO process network dirs if environment variable is set
# process only base, nothing (i.e. BASH_SAFE_MODE, SSH_SHELL_CLEAN) if env variables are set
# see https://stackoverflow.com/a/59461195
shell_process_directory $BASH_SHELL_BASE
shell_process_directory $BASH_SHELL_ANY_HOST
shell_process_directory $BASH_SHELL_HOST
export BASH_SHELL_BASE_LOADED=true
else
# local shell so process all directories
for dir in ${1:-$BASH_SHELL_DIRS}; do for dir in ${1:-$BASH_SHELL_DIRS}; do
# echo $dir $BASH_SHELL_BASE # env | grep BASH
# echo $dir
shell_process_directory $dir shell_process_directory $dir
[[ "$dir" = "$BASH_SHELL_BASE" ]] && export BASH_SHELL_BASE_LOADED=true [[ "$dir" = "$BASH_SHELL_BASE" ]] && export BASH_SHELL_BASE_LOADED=true
done done
fi
export BASH_SHELL_LOADED=true export BASH_SHELL_LOADED=true

View File

@ -9,7 +9,7 @@ function shell_process_directory () {
DIR=${1:-$BASH_SHELL_BASE} DIR=${1:-$BASH_SHELL_BASE}
# echo soucring directory $DIR # echo sourcing directory $DIR
# if [[ $DIR = "$BASH_SHELL_BASE" ]]; then # if [[ $DIR = "$BASH_SHELL_BASE" ]]; then
# BASH_SHELL_IGNORE=$(shell_get_ignores) # BASH_SHELL_IGNORE=$(shell_get_ignores)
# excludes=$BASH_SHELL_IGNORE # excludes=$BASH_SHELL_IGNORE
@ -41,6 +41,8 @@ function shell_process_directory () {
SUBDIRS=$([[ -f "$DIR/.bash-shell-include" ]] && cat "$DIR/.bash-shell-include" || cat "$BASH_SHELL_BASE/.bash-shell-include") SUBDIRS=$([[ -f "$DIR/.bash-shell-include" ]] && cat "$DIR/.bash-shell-include" || cat "$BASH_SHELL_BASE/.bash-shell-include")
[[ $SSH_SESSION ]] && SUBDIRS+=" ssh/session" [[ $SSH_SESSION ]] && SUBDIRS+=" ssh/session"
IGNORE_FILE="$([[ -f "$DIR/.bash-shell-ignore" ]] && echo "$DIR" || echo "$BASH_SHELL_BASE")/.bash-shell-ignore" IGNORE_FILE="$([[ -f "$DIR/.bash-shell-ignore" ]] && echo "$DIR" || echo "$BASH_SHELL_BASE")/.bash-shell-ignore"
# echo $DIR
# echo $SUBDIRS
for SUBDIR in $SUBDIRS; do for SUBDIR in $SUBDIRS; do
if [ -e "$DIR/$SUBDIR" ]; then if [ -e "$DIR/$SUBDIR" ]; then
# echo processing subdirectory $DIR/$SUBDIR # echo processing subdirectory $DIR/$SUBDIR

View File

@ -10,8 +10,8 @@
if ( [[ $SHELL_INTERACTIVE ]] );then if ( [[ $SHELL_INTERACTIVE ]] );then
if ( [[ $BASH_SHELL_BASE_LOADED = true ]] ) ; then if ( [[ $BASH_SHELL_BASE_LOADED = true ]] ) ; then
# echo loading user shell sources
export BASH_SHELL_USER=${BASH_SHELL_USER:-"shell"} export BASH_SHELL_USER=${BASH_SHELL_USER:-"shell"}
# echo loading user $USER shell at $HOME/$BASH_SHELL_USER
[[ -d $HOME/$BASH_SHELL_USER ]] && shell_process_directory "$HOME/$BASH_SHELL_USER" ||\ [[ -d $HOME/$BASH_SHELL_USER ]] && shell_process_directory "$HOME/$BASH_SHELL_USER" ||\
echo no user shell directory $HOME/$BASH_SHELL_USER to process, create one or clone a template echo no user shell directory $HOME/$BASH_SHELL_USER to process, create one or clone a template
fi fi