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" alias gcap="git commit --amend --no-edit && git push -f" # 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 clusterctl talosctl flux ; do type $bin &>/dev/null && source <($bin completion bash) done