if [ -f $HOME/.profile ]; then
    source $HOME/.profile
fi

#
# TODO: CISM Section
#
mySystem=$(uname -n)
myFQDN="$(uname -n).$(dnsdomainname)"
mySlesVersionId=$(grep PRETTY_NAME /etc/os-release)
mySlesVersion=${mySlesVersionId#*=}
mySlesVersion=${mySlesVersion//\"}

# Debugging
if [ "$myFQDN" == "BUI-NB1207-GP.bui.materna.com" ]; then
    log_info "env: $myFQDN ($myType) in $myEnv"
    myType=$myFQDN
    myEnv=STG
    myNum=0
else 
    myType=$myFQDN
    myEnv=unknown
    myNum=0
fi

function fadeIn() {
    START=$1
    END=$2
    for ((i=$START; i<=$END; i++)); do
        FADE="$FADE\[\e[48;5;${i}m\] "
    done
    FADE="$FADE \[\e[0m"
}

function fadeOut() {
    START=$1
    END=$2
    for ((i=$START; i<=$END; i--)); do
        FADE="$FADE\[\e[48;5;${i}m\] "
        echo -e "$FADE"
    done
    FADE="$FADE \[\e[0m"
}

# CPU function
function getCPULoad {
    echo $(sar -u 1 1 | awk '/^Average:/{print 100-$8}')
}
# last exit code
function lastExitCode {
    local exit="$?"
    local VERSION_ID=$(grep VERSION_ID /etc/os-release)
    local SLES_VERSION=${VERSION_ID#*=}
    local SLES_VERSION=${SLES_VERSION//\"}


    if [ $exit != 0 ];then
        # echo -e "${sol_red}!${bg_reset}"
        # printf '\[\033[32m\]0_0\[\033\0m\]'
        # printf '0_0 ✕'
        printf '\e[38;5;160m%-5s'  "✕ ❗ ($exit)" 
    else 
        # echo "OK"
	# printf '^_^ ✔'
	printf '✔'
    fi
    # printf "  $SLES_VERSION" 
}

# Solarized Theme
source $HOME/.solarize_colors_base

bg_system="\[\e[48;5;0m\]"
bg_type="\[\e[48;5;254m\]"
bg_reset="\[\e[49m\]"

fg_sytem="\[\e[38;5;15m\]"
fg_type="\[\e[1m\]"
fg_reset="\[\e[39m\]"

fg_arrow1="\[\e[38;5;18m\]"
fg_arrow2="\[\e[38;5;254m\]"

# Background by ENV
dev="22"
prod="52"
sys="94"

case $myEnv in
    DEV)
        SYSTEM="Development System"
        bg_system="${sol_bg_green}"
        fg_system="${sol_green}"
        fg_type="${sol_green}"
        ;;
    TST)
        SYSTEM="Test System"
        bg_system="${sol_bg_blue}"
        fg_system="${sol_blue}"
        fg_type="${sol_blue}"
        ;;
    PRD)
        SYSTEM="Production System"
        bg_system="${sol_bg_red}"
        fg_system="${sol_red}"
        fg_type="${sol_red}"
        ;;
    STG|ST2)
        SYSTEM="$myEnv"
        bg_system="${sol_bg_yellow}"
        fg_system="${sol_yellow}"
        fg_type="${sol_yellow}"
        ;;
    *)
        echo "myEnv: $myEnv"
        echo "myType: $myType"
        SYSTEM="System of a Down"
        bg_system="${sol_bg_magenta}"
        fg_system="${sol_magenta}"
        fg_type="${sol_magenta}"
        ;;
esac

bg_type="${sol_bg_base3}"
fg_arrow1="${fg_type}"
fg_arrow2="${sol_base3}"

if [[ -z "${myType// }" ]]; then
    TYPE=$(uname -n)
else
TYPE=" $myType "
fi
if [ "$myNum" != "0" ]; then
    TYPE="$TYPE ($myNum)"
fi
echo "System Prompt: $SYSTEM_PROMPT"

# SYSTEM_PROMPT="\n${bg_system}${fg_sytem}${SYSTEM} ${bg_type}${fg_arrow1}"
#  "
#                 
SYSTEM_PROMPT="\n${fg_arrow1}░▒▓${bg_system} ${fg_sytem}${SYSTEM} ${bg_type}${fg_arrow1}▓▒░"
# fadeIn 64 230
#echo -e "$FADE"
# SYSTEM_PROMPT="\n${bg_system}${fg_sytem}${SYSTEM} $FADE"
# TYPE_PROMPT="$TYPE  [CPU: \$(getCPULoad) %] ${bg_reset}${fg_arrow2}"

# TYPE_PROMPT="$TYPE  [\$(if [ \$? = 0 ]; then echo ${sol_red}^_^; else echo 0_0; fi)] ${bg_reset}${fg_arrow2}▓▒░"
# TYPE_PROMPT="$TYPE  \$(lastExitCode) ${bg_reset}${fg_arrow2}▓▒░"
# TYPE_PROMPT="$TYPE  \$(lastExitCode) ${fg_arrow1}  $mySlesVersion ${sol_blue}\${STY#[0-9]*.} ${bg_reset}${fg_arrow2}▇▆▅▄▃▂▁"
TYPE_PROMPT="$TYPE  \$(lastExitCode) ${fg_arrow1}  $mySlesVersion ${sol_blue}\${STY#[0-9]*.} ${bg_reset}${fg_arrow2}▓▒░"
# With CPU Load
# TYPE_PROMPT="$TYPE  [CPU: \$(getCPULoad) %] ${bg_reset}${fg_arrow2}▓▒░"

# TYPE_PROMPT="\[\e[48;5;27;1;30m$TYPE ${bg_reset}\[\e[48;5;27m░▒▓"

PROMPT="${SYSTEM_PROMPT} ${TYPE_PROMPT}"
DATE="\[\e[0;32m\]\d \t"
if [ "$(whoami)" = "root" ]; then
    DIR="\[\e[97;49m\]\[\e[0;91;107m\] \u@\h \[\e[97;49m\]\[\e[39;49m\] in \[\e[0;32m\]\w"
    # DIR="\[\e[97;49m\]▒\[\e[0;91;107m\] \u@\h \[\e[97;49m\]▒\[\e[39;49m\] in \[\e[0;32m\]\w"
else
    DIR="\[\e[0;32m\]\u@\h \[\e[31m\]☆ \[\e[0;32m\]\w"
fi

# PROMPT_COMMAND=promptcmd

PS1="${PROMPT}\[\e[0m\] \n${DIR}\n${DATE} → \[\e[0m\]"

echo '┌─────────────────────────────┐'
echo '│      Welcome to CISM        │'
echo '└─────────────────────────────┘'

if [ $(whoami | grep root | wc -l) == 1 ]; then
    echo -e "\e[31;107m┌─────────────────────────────┐\e[0m"
    echo -e "\e[31;107m│  YOU ARE ROOT, BE CAREFUL!  │\e[0m"
    echo -e "\e[31;107m└─────────────────────────────┘\e[0m"

    # Test mintty
    echo -ne '\e]11;44,10,10\a'
else
    # echo -ne '\e]11;0,30,60\a'
    log_warn "TODO: background colors..." 
fi

if [ $(hostname | grep solveig | wc -l) == 1 ]; then
    echo 'Welcome on solveig'
    export PS1="\n\d \t ☆ \e[1;31m\]\u@\h \[\e[39m\]in \[\e[0;32m\]\w\n\[\e[0;32m\]$(git branch) → \[\e[39m\]"
elif [ $(hostname | grep openwrt | wc -l) == 1 ]; then
    PS1="\e[36m \t \e[31m- \e[32m\u@\h \e[0m in \w \n \e[0;32m \$ \e[39m"
fi

# taken from https://github.com/randomphrase/dotfiles/blob/master/sshrc
# modified to use own "HOME"
# Are we using a shared account?

 #   if [[ -z "$ENVIRONMENT" ]]; then
        # Use my own shell history file
 #       export HISTFILE=$HOME/.bash_history.$SSH_INCOMING_USER
 #   elif [[ "$ENVIRONMENT" == "CISM" ]]; then
        if [[ -d "/home/arsystem/HOME/sgaisel/bash_history" ]]; then
            export HISTFILE=/home/arsystem/HOME/sgaisel/bash_history/${USER}_$(uname -n)
            log_info "using bash history $HISTFILE"
        else
            echo "no 'HOME' found, using standard history file"
        fi
 #       alias tree="find ./ -type d | sed -e 's/[^-][^\/]*\//--/g;s/--/ |-/'"
 #   fi

    # use own vim parameters if available
 #   if [[ -f "$HOME/HOME/sgaisel/.vimrc" ]]; then
 #       echo 'using .vimrc from /home/arsystem/HOME/sgaisel'
 #       alias vi="vim --cmd 'set rtp^=/home/arsystem/HOME/sgaisel/.vim' -u /home/arsystem/HOME/sgaisel/.vimrc"
 #   fi
#fi

# avoid '^?' in vim
# see https://vim.fandom.com/wiki/Backspace_and_delete_problems
stty erase '^?' 

# Set Title, see https://superuser.com/questions/249293/rename-tmux-window-name-to-prompt-command-ps1-or-remote-ssh-hostname
settitle() {
    printf "\033k$1\033\\"
}

# settitle "$(uname -n)"
settitle "$myEnv ($(uname -n))"

export LS_OPTIONS='--color=auto'
eval "$(dircolors -b)"
alias ls='ls $LS_OPTIONS'

# Some aliases to tail logfiles
alias tailMisc='tail -f /srv/CISM/log-data/CONTEXT_misc/cism-misc.log'
alias tailWS='tail -f /srv/CISM/log-data/CONTEXT_ws/cism-ws.log'
alias tailGraph='tail -f /srv/CISM/log-data/CONTEXT_graph/cism-graph.log'
alias tailBB='tail -f /srv/CISM/log-data/CONTEXT_bb/cism-bb.log'
alias tailKM='tail -f /srv/CISM/log-data/CONTEXT_km/cism-km-main.log'

alias cs='/srv/CISM/sbin/ALLRC status | grep -B 2 -e active -e inactive'
alias dev='cd /srv/CISM/release-management/check-dev'
alias stg='cd /srv/CISM/release-management/rpm-stg'

# most used netcat alias
alias n='netcat -vz -w 10 '

alias psg='ps -aux | grep -v grep | grep '

# Some functions (some by c't magazine)
cdl() {
    cd "$@"
    if [ "$?" == 0 ]; then
        ls
    fi
}

backup() {
    cp -p "$@" "$@".backup-$(date +%Y-%m-%d_%H_%M_%S)
}

extract() {
    case $1 in 
        *.tar.bz2)	tar xvjf $1	;;
	*.tar.gz|*.tgz)	tar xvfz $1	;;
	*.zip)		unzip $1	;;
	*)		echo "Not supported: $1"	;;
    esac
}

# extend Path
if [ "$(dnsdomainname)" = "emea.isn.corpintra.net" ];then
    PATH=$PATH:/home/arsystem/HOME/sgaisel/bin
fi
