#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

[[ "$(whoami)" = "root" ]] && return

[[ -z "$FUNCNEST" ]] && export FUNCNEST=100          # limits recursive functions, see 'man bash'

## Use the up and down arrow keys for finding a command in history
## (you can write some initial letters of the command first).
bind '"\e[A":history-search-backward'
bind '"\e[B":history-search-forward'

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# ---------------------------------------------------------------------------
#  EDITOR
# ---------------------------------------------------------------------------

if [ -f "/usr/bin/vim" ]; then
  export EDITOR=/usr/bin/vim
  export SVN_EDITOR=/usr/bin/vim
  export GIT_EDITOR=/usr/bin/vim
  export VISUAL=/usr/bin/vim
fi

# ---------------------------------------------------------------------------
#  PROMPT
# ---------------------------------------------------------------------------

if [ -f "/usr/bin/starship" ]; then
  eval "$(starship init bash)"
else
  # set a minimalist prompt
  red='\[\e[0;31m\]'      # Red
  green='\[\e[0;32m\]'    # Green
  blue='\[\e[0;34m\]'     # Bold Blue
  boldred='\[\e[1;31m\]'  # Bold Red
  reset='\[\e[0m\]'       # Text Reset

  if [ "$USER" = "root" ] ; then
    # $bold$red
    PROMPT_USER_COLOR=$boldred 
    PROMPT_SYMBOL="#"
  else
    PROMPT_USER_COLOR=$green
    PROMPT_SYMBOL="$"
  fi

  if [[ -n "$SSH_CLIENT$SSH2_CLIENT$SSH_TTY" ]] ; then
    PROMPT_SSH="@\h"
  else
    PROMPT_SSH=""
  fi

  PS1="$PROMPT_USER_COLOR\u$PROMPT_SSH $blue\w$reset $PROMPT_SYMBOL "

  if [ -f "$HOME/.bash-git-prompt/gitprompt.sh" ]; then
      GIT_PROMPT_ONLY_IN_REPO=1
      GIT_PROMPT_IGNORE_SUBMODULES=1
      GIT_PROMPT_WITH_VIRTUAL_ENV=0
      GIT_PROMPT_THEME=Solarized_Yax
      source $HOME/.bash-git-prompt/gitprompt.sh
  fi
fi

# ---------------------------------------------------------------------------
#  ALIASES
# ---------------------------------------------------------------------------

# The ubiquitous 'll': directories first, with alphanumeric sorting
alias ll="ls -lv --group-directories-first --ignore=.." # show long listing but no hidden dotfiles except "."
alias la='ls -lav' 

alias rm='rm --interactive --verbose'
alias mv='mv --interactive --verbose'
alias cp='cp --verbose --interactive'

alias wget='wget -c'
alias dmesg='dmesg -T'
alias grep='grep --color'
alias vi='/usr/bin/vim'

alias serve="python3 -m $(python3 -c 'import sys; print("http.server" if sys.version_info[:2] > (2,7) else "SimpleHTTPServer")')"

# -------------------------------------------------------------
# PYTHON 
# -------------------------------------------------------------

[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc

if [ -f "$HOME/.pythonz/pythons/CPython-3.9.1/bin/python" ]; then
    export PATH=$HOME/.pythonz/pythons/CPython-3.9.1/bin:$PATH
fi

if [ -f "$HOME/.pythonz/pythons/CPython-3.9.1/bin/pew" ]; then
    source "$(pew shell_config)"
fi

# -------------------------------------------------------------
# Source all .bashrc files
# -------------------------------------------------------------

if [ -d "$HOME/.bashrc.d/" ]; then
    for file in ~/.bashrc.d/*.bashrc; do
            . "$file"
    done
fi

