myshellconfig/myshell_load_defaults

145 lines
4.2 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# if we are root, exit after 5 Minutes
case $(tty) in
/dev/tty[0-9]*)
case $(id -u) in
0)
TMOUT=${MYSHELLCONFIG_ROOT_TMOUT:-500}
;;
*)
TMOUT=${MYSHELLCONFIG_USER_TMOUT:-1000}
;;
esac
echo "Run in TTY -> set autologout \$TMOUT=$TMOUT" >&2
;;
*)
echo "Run in graphical terminal - set no autologout" >&2
unset TMOUT
;;
esac
# Load default values, functions, aliases for myshellconfig
if ! $SSHS; then
if [ -e ${MYSHELLCONFIG_BASE}/functions.sh ]; then
. ${MYSHELLCONFIG_BASE}/functions.sh
else
return
fi
######################################################################################
# ls is not in color on all systems
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
#######################################################################################
# User specific aliases and function
if [ -d "${MYSHELLCONFIG_BASE}/bin" ] ; then
pathmunge "${MYSHELLCONFIG_BASE}/bin"
export PATH
fi
if [ -d "${MYSHELLCONFIG_BASE}/git-credential-pass" ] ; then
pathmunge "${MYSHELLCONFIG_BASE}/git-credential-pass"
export PATH
fi
if [ -f "${MYSHELLCONFIG_BASE}/aliases" ]; then
. "${MYSHELLCONFIG_BASE}/aliases"
fi
if [ -f "${MYSHELLCONFIG_BASE}/PS1" ]; then
. "${MYSHELLCONFIG_BASE}/PS1"
fi
if [ -e "${MYSHELLCONFIG_BASH_COMPLETION}" ]; then
for i in $( ls "${MYSHELLCONFIG_BASH_COMPLETION}" ); do
. "${MYSHELLCONFIG_BASH_COMPLETION}/${i}"
done
unset i
fi
if [ -f "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" ]; then
. "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig"
fi
#########################################################################################
# Go HOME
#cd ${HOME}
if test ! $TMUX && test $SSH_TTY && test $TERM != screen && test $(systemctl status tmux@${USER}.service 1>/dev/null 2>&1; echo $? ) -eq 0; then
cat << EOF
"User: $USER - $UID"
Starting or resuming screen session
Press CTRL+C to cancel screen startup
EOF
sleep 1
#screen -UxR
tmux attach-session
fi
unset -f pathmunge
else
# run with temporary config
case $TERM in
*screen*)
echo BASHRC: $BASHRC -> source it
#[ -e $BASHRC ] && . "$BASHRC"
if [ ! -z ${BASHRC+x} ]; then
if [ -e $BASHRC ] ; then
exec bash --rcfile "$BASHRC" -i /dev/null
else
exec bash -i
fi
else
exec bash -i
fi
;;
esac
fi
# Disable Ctrl+s to freeze terminal
# Source https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps
stty -ixon
export HISTCONTROL=erasedups:ignorespace:ignoredups
export HISTIGNORE="ls:l:cd:exit:pwd:date:mencfs:"
export HISTTIMEFORMAT='%F %T '
export HISTSIZE=999999
echo "bashrc_add sourced" 2>&1 |tee -a ${MYSHELLCONFIG_LOGFILE} >&2
#echo "bashrc_add sourced" >&2
# Export several functions for being usable in subshells
export -f token
export -f sudo
export -f reachable
export -f reachable-default
cat << EOF > ~/.ssh/agents/agent-default-$(hostname)
SSH_AUTH_SOCK=\${SSH_AUTH_SOCK}; export SSH_AUTH_SOCK;
SSH_AGENT_PID=\${SSH_AGENT_PID}; export SSH_AGENT_PID;
echo Agent pid \${SSH_AGENT_PID};
EOF
[ -z "${SSH_ADD_DEFAULT_OPTIONS+x}" ] && { SSH_ADD_DEFAULT_OPTIONS="-t 7200"; export SSH_ADD_DEFAULT_OPTIONS; }
[ -z "${SSH_IDENTITIES_DEFAULT_DIR+x}" ] && { SSH_IDENTITIES_DEFAULT_DIR="${HOME}/.ssh/identities"; export SSH_IDENTITIES_DEFAULT_DIR; }
[ -z "${SSH_AGENTS_DEFAULT_DIR+x}" ] && { SSH_AGENTS_DEFAULT_DIR="${HOME}/.ssh/agents"; export SSH_AGENTS_DEFAULT_DIR; }
[ -z "${SSH_AGENT_SOCKETS_DEFAULT_DIR+x}" ] && { SSH_AGENT_SOCKETS_DEFAULT_DIR="${HOME}/.ssh/agents"; export SSH_AGENT_SOCKETS_DEFAULT_DIR; }
[ -n "${SSH_AGENTS_DIR-x}" ] && mkdir -p "$SSH_AGENTS_DIR"
[ -n "${SSH_AGENT_SOCKETS_DIR-x}" ] && mkdir -p "$SSH_AGENT_SOCKETS_DIR"