dotfiles/.bash_profile

109 lines
3 KiB
Bash

# Souce bash specific set up,
[ -f ~/.bashrc ] && . ~/.bashrc
# Environment.
export EDITOR="nano"
export LANG="en_GB.UTF-8"
export LC_COLLATE="POSIX" # 'C' causes issues with some applications
# export LC_CTYPE="POSIX" # Not sure why I set this in the first place...
export LESS="-RMi -PM?f%F:stdin. -- Page %dt of %D -- %lt/%L (%Pt\%)$"
export MANPAGER="less -Mis -PM'Page %dt$'"
export PAGER="less"
export PATH="/usr/local/sbin:/usr/sbin:/opt/sbin:/sbin:$PATH"
export VISUAL="$EDITOR"
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# Platform specific set up.
_PLATFORM="$(uname -s)"
if [ "$_PLATFORM" = "Linux" ]; then
export I_WANT_A_BROKEN_PS=1
export MANPATH="~/.local/share/man:$MANPATH"
hash dircolors >/dev/null 2>&1 && eval "$(dircolors -b ~/.dir_colors)"
elif [ "$_PLATFORM" = "Darwin" ]; then
export LSCOLORS="ExGxdxdxCxDxDxbcacbeae"
export MANPATH="/opt/local/share/man:$MANPATH"
export PATH="/opt/local/sbin:/opt/local/bin:$PATH"
else
echo "${BASH_SOURCE##*/}: unsupported platform: $_PLATFORM" >&2
fi
unset _PLATFORM
# Add bin directories to PATH.
[ -d ~/files/bin ] && export PATH="~/files/bin:$PATH"
[ -d ~/.local/bin ] && export PATH="~/.local/bin:$PATH"
[ -d ~/bin ] && export PATH="~/bin:$PATH"
# SSH agent.
hash ssh-add ssh-agent >/dev/null 2>&1 && {
if [ ! -z "$SSH_AUTH_SOCK" ]; then
ssh-add -l >/dev/null 2>&1
if (( $? < 2 )); then
echo "Connected to ssh-agent."
echo
alias ssh='ssh-add -l >/dev/null 2>&1 && unalias ssh || { ssh-add && unalias ssh; }; ssh'
else
echo -e '\033[1;31mProblem connecting to forwarded ssh-agent!\033[0m'
echo
fi
else
. ~/.ssh/agent 2>/dev/null
ssh-add -l >/dev/null 2>&1
if (( $? < 2 )); then
echo "Connected to ssh-agent."
echo
alias ssh='ssh-add -l >/dev/null 2>&1 && unalias ssh || { ssh-add && unalias ssh; }; ssh'
else
if ssh-agent -s | sed -e '/^echo/ d' >~/.ssh/agent; then
. ~/.ssh/agent
ssh-add -l >/dev/null 2>&1
if (( $? < 2 )); then
echo "Started new ssh-agent."
echo
alias ssh='ssh-add -l >/dev/null 2>&1 && unalias ssh || { ssh-add && unalias ssh; }; ssh'
else
echo "Problem connecting to local ssh-agent!"
echo
fi
else
echo "Failed to start local ssh-agent!"
echo
fi
fi
fi
}
# Screen.
hash screen >/dev/null 2>&1 && {
if [ ! -e ~/.hushlogin ]; then
if [ ! -z "$STY" ]; then
echo "Screen $STY, window $WINDOW."
echo
else
_SCREENS="$( screen -ls | grep '[[:alpha:]]' | egrep -v '^([[:digit:]]+|No) Socket(s)?' )"
if [ -n "$_SCREENS" ]; then
echo "$_SCREENS"
echo
else
echo "No screens."
echo
fi
unset _SCREENS
fi
fi
}
# Mail check.
[ ! -z "$SSH_CONNECTION" ] && {
if [ -s /var/spool/mail/$USER ]; then
if [ -N /var/spool/mail/$USER ]; then
echo "You have new mail."
echo
else
echo "You have mail."
echo
fi
# else
# echo "No mail."
# echo
fi
}