diff --git a/modules/networks.mod b/modules/networks.mod index 8a6ffdb..4e40203 100644 --- a/modules/networks.mod +++ b/modules/networks.mod @@ -39,10 +39,10 @@ function network_path () { function get_network_paths () { - (return 0 2>/dev/null) || (echo network_dirs must be sourced; return 1) - local lookin="$BASH_SHELL_HOST $BASH_SHELL_USER_DIR $BASH_SHELL_DEV" local networks +local home +[[ $1 == "-h" ]] && home=true && shift 1 for dir in $lookin; do # echo checking in $dir if [[ -f $dir/.networks ]]; then @@ -73,11 +73,12 @@ for network in $networks; do export BASH_NETWORK_HOME_PATH export BASH_SHELL_NETWORK_PATHS + [[ $home ]] && echo $BASH_NETWORK_HOME_PATH || echo $BASH_SHELL_NETWORK_PATHS + # env | grep NETWORK } - loadssh () { module_load ssh module_load ssh-config @@ -86,39 +87,44 @@ loadssh () { module_load ssh-pubkey module_load sshfs enable_mounts - # echo ssh modules are loaded + export BASH_SHELL_SSH_LOADED=true + # echo ssh modules are loaded } load_home_network() { -unset BASH_NETWORK_HOME -unset BASH_NETWORK_HOME_PATH -get_network_paths -if [[ $BASH_NETWORK_HOME_PATH ]]; then - # echo loading home $BASH_NETWORK_HOME_PATH - shell_process_directory $BASH_NETWORK_HOME_PATH -fi + local home + home=$(get_network_paths -h) + # echo returned $home + if [[ $home ]]; then + # echo loading home $BASH_NETWORK_HOME_PATH + [[ ! "$BASH_SHELL_NETWORKS_LOADED" == *"$home"* ]] && BASH_SHELL_NETWORKS_LOADED+="$home " + export BASH_SHELL_NETWORKS_LOADED + fi } -load_all_networks () { -# unset BASH_SHELL_HOME_NETWORK_LOAD -# export BASH_SHELL_NETWORKS_LOAD=true - unset BASH_SHELL_NETWORK_PATHS - get_network_paths - if [[ $BASH_SHELL_NETWORK_PATHS ]]; then - for dir in ${1:-$BASH_SHELL_NETWORK_PATHS}; do - # echo network $dir processed - shell_process_directory $dir +loaded_networks () { + echo $BASH_SHELL_NETWORKS_LOADED +} + +load_networks () { + # echo load networks $1 + local network; local networks; local path + if [[ $1 ]]; then + for network in "$@"; do + networks+="$(network_path $network) " done + else + unset BASH_SHELL_NETWORK_PATHS + networks=$(get_network_paths) fi -} - -load_a_network () { - [[ ! $1 ]] && return 1 - for dir in $1; do - # echo network $dir processed - shell_process_directory $dir - done + # echo networks to load $networks + for path in $networks; do + # echo network $path processed + shell_process_directory $path + [[ ! "$BASH_SHELL_NETWORKS_LOADED" == *"$path"* ]] && BASH_SHELL_NETWORKS_LOADED+="$path " + done + export BASH_SHELL_NETWORKS_LOADED } clear_networks () { @@ -132,13 +138,10 @@ clear_networks () { networks_load () { - # echo load_networks called $@ + # echo networks_load called $@ - [[ $1 == "-h" ]] && { shift 1; load_home_network || return $?; } - [[ $1 == "-a" ]] && { shift 1; load_all_networks || return $?; } - [[ $1 ]] && { load_a_network $@ || return 1; } - # echo loading ssh - loadssh + [[ $1 == "-h" ]] && { shift 1; load_home_network || return $?; } || load_networks "$@" + if [[ $BASH_SHELL_SSH_LOADED ]]; then enable_mounts; ssh_config; else loadssh; fi [[ $BASH_SHELL_LOADED ]] && load_shell_host_user_dev } \ No newline at end of file diff --git a/modules/ssh-config.mod b/modules/ssh-config.mod index 86c3091..b6a34cf 100644 --- a/modules/ssh-config.mod +++ b/modules/ssh-config.mod @@ -71,7 +71,7 @@ if [[ (! $SSH_CONFIG || $RESET ) ]]; then chmod 600 $SSH_CONFIG fi - [[ ! $DIRS ]] && DIRS=($BASH_SHELL_NETWORK_PATHS "$BASH_SHELL_HOST" "$BASH_SHELL_USER_DIR" "$BASH_SHELL_DEV") + [[ ! $DIRS ]] && DIRS=($BASH_SHELL_NETWORKS_LOADED "$BASH_SHELL_HOST" "$BASH_SHELL_USER_DIR" "$BASH_SHELL_DEV") # echo DIRS "${DIRS[@]}" # echo $SSH_CONFIG CDIRS=() diff --git a/modules/sshfs.mod b/modules/sshfs.mod index 60415b3..b0cd1cb 100755 --- a/modules/sshfs.mod +++ b/modules/sshfs.mod @@ -123,7 +123,7 @@ function umntBackup() { function enable_mounts() { - DIRS=($BASH_SHELL_NETWORK_PATHS "$BASH_SHELL_HOST" "$BASH_SHELL_USER_DIR" "$BASH_SHELL_DEV") + DIRS=($BASH_SHELL_NETWORKS_LOADED "$BASH_SHELL_HOST" "$BASH_SHELL_USER_DIR" "$BASH_SHELL_DEV") # echo DIRS "${DIRS[@]}" CDIRS=() j=0