dotfiles/bashrc

129 lines
3.6 KiB
Bash

source /etc/profile 2>/dev/null
source /etc/profile.d/* 2>/dev/null
# Change prompt if root
if [ $UID -eq 0 ] ; then
PROMPT_SUFFIX='\[\033[1;31m\] # \[\033[0m\]'
else
PROMPT_SUFFIX='\[\033[0;32m\] $ \[\033[0m\]'
fi
# Shorten long usernames
if [ $(whoami | wc -c) -gt 10 ] ; then
USER="me"
else
USER=$(whoami)
fi
export PATH=$PATH:~/bin:~/local/bin
function tmux_title {
printf '\033]2;%s\033\\' $@
}
#tmux_title $(hostname -s)
# load powerline
if which powerline-daemon &>/dev/null; then
powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
else
# otherwise Git prompt
PS1='\[\033[0;32m\]${USER}@\h\[\033[0m\] [\[\033[0;33m\]\w\[\]\[\033[0;32m\]]\n'$PROMPT_SUFFIX
GIT_PROMPT_ONLY_IN_REPO=1
GIT_PROMPT_FETCH_REMOTE_STATUS=0
GIT_PROMPT_IGNORE_STASH=1
GIT_PROMPT_THEME=Noldorized
source ~/.bash-git-prompt/gitprompt.sh
function prompt_callback {
REPO=$(git remote -v | sed -r 's/^origin.*\/(.*)\ .*/\1/' | head -1)
tmux_title "$REPO($GIT_BRANCH)"
}
fi
PYVERSION=$(python3 --version | grep -Eo '[0-9]\.[0-9]')
if [ -f $HOME/.venv/lib/python${PYVERSION}/site-packages/powerline/bindings/bash/powerline.sh ]; then
export VIRTUAL_ENV="$HOME/.venv"
export PATH=$VIRTUAL_ENV/bin:$PATH
# powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
function _update_ps1() {
if git log --oneline -n1 &>/dev/null ; then
REPO=$(git remote -v | sed -r 's/^origin.*\/(.*)\ .*/\1/' | sed 's/.git$//'| head -1)
BRANCH=$(git branch --show-current)
tmux_title "$REPO($BRANCH)"
else
tmux_title "$(hostname)"
fi
PS1=$(powerline-shell $?)
}
if [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; then
PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi
# source $HOME/.venv/lib/python${PYVERSION}/site-packages/powerline/bindings/bash/powerline.sh
elif [ -f ~/.local/lib/python${PYVERSION}/site-packages/powerline/bindings/bash/powerline.sh ] ; then
#source ~/.local/lib/python${PYVERSION}/site-packages/powerline/bindings/bash/powerline.sh
echo no
elif [ -f /usr/local/lib/python${PYVERSION}/dist-packages/powerline/bindings/bash/powerline.sh ]; then
source /usr/local/lib/python${PYVERSION}/dist-packages/powerline/bindings/bash/powerline.sh
fi
set +x
# LS_COLORS
eval $(dircolors -b $HOME/.dircolors)
# Global Options
export LS_OPTIONS=""
export LESS='-R'
export TERM=xterm-256color
export MC_SKIN=$HOME/.mc/lib/solarized.ini
if [ -e ~/.local/bin/virtualenvwrapper.sh ] ; then
# Python stuff
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source ~/.local/bin/virtualenvwrapper.sh
export WORKON_HOME=/home/nold/.virtualenvs
export PIP_VIRTUALENV_BASE=/home/nold/.virtualenvs
fi
# Aliases
alias ls="ls --color=always --time-style=long-iso -F"
alias dfh="df -hT -t ext4 -t zfs"
alias lsof='lsof 2>/dev/null | grep'
# Git
alias gs="git status"
alias gc="git commit -m"
alias gco="git checkout"
alias gl="git l"
alias ga="git add"
alias gpush="git push"
alias gpull="git pull"
# Docker-Compose
alias dcu="docker-compose up -d --remove-orphans"
alias dcd="docker-compose down"
alias dcp="docker-compose pull"
alias dcb="docker-compose build"
alias dcl="docker-compose logs"
alias dclf="docker-compose logs --tail=50 -f"
# k3s / k8s / helm
alias k="kubectl"
alias kga="kubectl get all --all-namespaces -o wide"
alias kgn="kubectl get nodes -o wide"
alias kgp="kubectl get pods -o wide"
# Completions for various tools...
for bin in kubectl helm talosctl ; do
type $bin &>/dev/null && source <($bin completion bash)
done
if type dpkg &>/dev/null && ! dpkg -l fonts-powerline &>/dev/null; then
echo "Notice: Please install fonts-powerline"
fi