feat: allow easier seperate loading of network repos from within terminal session uses new networks module functions
parent
762b1c3709
commit
279d5c1863
|
@ -0,0 +1,3 @@
|
|||
alias homenet="module_load networks && load_home_network"
|
||||
alias allnets="module_load networks && load_all_networks"
|
||||
alias clrnets="module_load networks && clear_networks"
|
|
@ -92,4 +92,11 @@ domain=$(echo $1 | awk -F\. '{print $(NF-1) FS $NF}')
|
|||
echo "$domain"
|
||||
}
|
||||
|
||||
publicip () {
|
||||
dig +short myip.opendns.com @resolver1.opendns.com
|
||||
}
|
||||
|
||||
getip () {
|
||||
dig +short $1 | tail -1
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
#!/bin/bash
|
||||
# to be sourced (below) not run in subshell!
|
||||
|
||||
function network_dirs () {
|
||||
|
||||
(return 0 2>/dev/null) || (echo network_dirs must be sourced; return 1)
|
||||
|
||||
module_load path
|
||||
[[ $? -ne 0 ]] && echo unable to access the file module, aboarting load && return 1
|
||||
|
||||
[[ ! $1 ]] && return 1
|
||||
local networks;
|
||||
networks=$1
|
||||
[[ -f $1 ]] && networks=$(cat $1 | tr -s "\n" " ")
|
||||
for network in $networks;
|
||||
# while read -r network || [ -n "$network" ]
|
||||
do
|
||||
if [[ ${network} = *!* ]]; then
|
||||
network=${network/!/}
|
||||
BASH_NETWORK_HOME=$network
|
||||
fi
|
||||
[[ $2 ]] && network=$2/$network
|
||||
if [[ $(isAbsPath $network) ]]; then
|
||||
[[ ! -d $network ]] && continue
|
||||
else
|
||||
if [[ -d ${HOME}/${BASH_SHELL_USER}/${network} ]];then
|
||||
network=${HOME}/${BASH_SHELL_USER}/${network}
|
||||
else
|
||||
if [[ -d ${BASH_NETWORKS_DIR}/${network} ]];then
|
||||
network=${BASH_NETWORKS_DIR}/${network}
|
||||
else
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
[[ $network =~ $NETWORK_HOME ]] && BASH_NETWORK_HOME_DIR=${network}
|
||||
# echo adding $network to list of networks
|
||||
BASH_SHELL_NETWORK_DIRS+="${network} "
|
||||
done
|
||||
# done < "$1"
|
||||
# echo after network-dirs $1
|
||||
# echo DIRS: $BASH_SHELL_NETWORK_DIRS
|
||||
|
||||
export BASH_NETWORK_HOME
|
||||
export BASH_NETWORK_HOME_DIR
|
||||
export BASH_SHELL_NETWORK_DIRS
|
||||
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
#!/bin/bash
|
||||
|
||||
# module_load network-dirs
|
||||
# # These will be loaded for all users on a host
|
||||
# network_dirs "$BASH_SHELL_HOST/.networks"
|
||||
# # these loaded only for specific user on a host and take precedence
|
||||
# network_dirs "$HOME/${BASH_SHELL_USER:-"shell"}/.networks"
|
||||
# # these are exported from network_dirs
|
||||
# # env | grep NETWORK
|
||||
# # NETWORK_HOME
|
||||
# # NETWORK_HOME_DIR
|
||||
# # BASH_SHELL_NETWORK_DIRS
|
||||
|
||||
loadssh () {
|
||||
module_load ssh
|
||||
module_load ssh-config
|
||||
ssh_config
|
||||
module_load ssh-copy
|
||||
module_load ssh-pubkey
|
||||
module_load sshfs
|
||||
enable_mounts
|
||||
# echo ssh modules are loaded
|
||||
}
|
||||
|
||||
|
||||
load_home_network() {
|
||||
# unset BASH_SHELL_NETWORKS_LOAD
|
||||
# export BASH_SHELL_HOME_NETWORK_LOAD=true
|
||||
_load_networks -h
|
||||
# loadssh
|
||||
}
|
||||
|
||||
load_all_networks () {
|
||||
# unset BASH_SHELL_HOME_NETWORK_LOAD
|
||||
# export BASH_SHELL_NETWORKS_LOAD=true
|
||||
_load_networks -a
|
||||
# dssh
|
||||
}
|
||||
|
||||
load_network () {
|
||||
unset BASH_SHELL_HOME_NETWORK_LOAD
|
||||
unset BASH_SHELL_NETWORKS_LOAD
|
||||
_load_networks $@
|
||||
# loadssh
|
||||
}
|
||||
|
||||
clear_networks () {
|
||||
unset BASH_SHELL_NETWORKS_LOAD
|
||||
unset BASH_SHELL_HOME_NETWORK_LOAD
|
||||
unset BASH_SHELL_NETWORK_DIRS
|
||||
unset BASH_SHELL_NETWORK
|
||||
reload_shell
|
||||
ssh_config
|
||||
}
|
||||
|
||||
# called from reload_shell
|
||||
_load_networks () {
|
||||
|
||||
# echo load_networks called $@
|
||||
|
||||
[[ $1 == "-h" ]] && BASH_SHELL_HOME_NETWORK_LOAD=true && shift 1
|
||||
[[ $1 == "-a" ]] && BASH_SHELL_NETWORKS_LOAD=true && shift 1
|
||||
|
||||
if [[ ! $BASH_SHELL_NETWORKS_LOAD ]] && [[ ! $BASH_SHELL_HOME_NETWORK_LOAD ]]; then
|
||||
[[ ! $1 ]] && return 0
|
||||
# echo $1 was passed
|
||||
fi
|
||||
# echo loading networks
|
||||
module_load network-dirs
|
||||
|
||||
# echo before unset $BASH_SHELL_NETWORK_DIRS
|
||||
unset BASH_SHELL_NETWORK_DIRS
|
||||
unset BASH_NETWORK_HOME
|
||||
unset BASH_NETWORK_HOME_DIR
|
||||
# echo after unset $BASH_SHELL_NETWORK_DIRS
|
||||
|
||||
if [[ $1 ]]; then
|
||||
network_dirs $1
|
||||
else
|
||||
# These will be added for all users on a host
|
||||
network_dirs "$BASH_SHELL_HOST/.networks"
|
||||
# these added only for specific user on a host and take precedence
|
||||
network_dirs "$HOME/${BASH_SHELL_USER:-"shell"}/.networks"
|
||||
# these added only for development and take precedence
|
||||
network_dirs "$BASH_SHELL_DEV/.networks"
|
||||
fi
|
||||
|
||||
if [[ $BASH_SHELL_HOME_NETWORK_LOAD ]]; then
|
||||
# echo Home nework $BASH_NETWORK_HOME_DIR processed
|
||||
shell_process_directory $BASH_NETWORK_HOME_DIR
|
||||
export BASH_SHELL_NETWORK_DIRS=$BASH_NETWORK_HOME_DIR
|
||||
else
|
||||
for dir in ${1:-$BASH_SHELL_NETWORK_DIRS}; do
|
||||
# echo network $dir processed
|
||||
shell_process_directory $dir
|
||||
done
|
||||
fi
|
||||
unset BASH_SHELL_NETWORKS_LOAD
|
||||
unset BASH_SHELL_HOME_NETWORK_LOAD
|
||||
loadssh
|
||||
[[ $BASH_SHELL_LOADED ]] && load_shell_host_user_dev
|
||||
# echo loaded $BASH_SHELL_NETWORK_DIRS
|
||||
}
|
Loading…
Reference in New Issue