#!/bin/bash

# enable color support of ls, grep and add alias
if [ -z "${ENVRCD_COLOR_OFF}" ] && [ -x /usr/bin/dircolors ]; then
    if [ -r "${ENVRCD_PROFILE_PATH}/.dircolors" ]; then
        eval "$(dircolors -b ${ENVRCD_PROFILE_PATH}/.dircolors)"
    elif [ -r ~/.dircolors ]; then
        eval "$(dircolors -b ~/.dircolors)"
    else
        eval "$(dircolors -b)"
    fi
    alias ls='ls -F --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
else
    alias ls='ls -F'
fi

# aliases
if [ "${ENVRCD_USER}" != "rda" ] || [ "${HOSTNAME}" != "rda" ] || [ "${USER}" != "maedersv" ]; then
    alias git="HOME=${ENVRCD_PROFILE_PATH} git"
fi
alias mv='mv -i'
alias cp='cp -i'
alias ll='ls -hlF'
alias l='ll'
alias la='ls -hlAF'
alias lla='ls -hlAF'
alias lsa='ls -AF'
alias llt='ls -hlFtr'
alias lat='ls -hlAFtr'
alias s='ssh'
alias snk='ssh -o StrictHostKeyChecking=no -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null'
alias sr='ssh -J rda.ethz.ch'
alias shci='ssh -J phd-jump-hci.ethz.ch'
alias shit='ssh -J phd-jump-hit.ethz.ch'
alias shpt='ssh -J phd-jump-hpt.ethz.ch'
alias e='ssh maedersv@rda.ethz.ch'
alias slapcat='slapcat -o ldif-wrap=no'
alias ldapsearch='ldapsearch -o ldif-wrap=no'
alias ldapimodify='ldapmodify -Y EXTERNAL -H ldapi://'
alias ldapisearch='ldapsearch -Y EXTERNAL -H ldapi://'
alias ldapiadd='ldapadd -Y EXTERNAL -H ldapi://'
alias ldapivi='ldapvi -Y EXTERNAL -h ldapi://'
alias lds='ldapsearch -xZZ'
alias ldm='ldapimodify'
alias lda='ldapiadd'
alias ldv='ldapivi'
alias ccze='ccze -A -o nolookups'
alias ccat='bat --style=plain --paging=never'
alias gits='git status'
alias gita='git add -A'
alias gitc='git commit -m'
alias gitf='git fetch'
alias gitp='git push'
alias gitpl='git pull'
alias gitpr='git pull --rebase --autostash'
alias gitsu='git submodule update --recursive --remote'
alias gitd='git diff'
alias gitds='git diff --staged'
alias gitdc='git diff --cached'
alias gitl='git log'
alias gitlp='git log -p'
alias gitla='git adog'
alias gitlv='git adogv'
alias gg='git grep -i'
alias g='grep -iE'
alias gr='grep -RiE --exclude-dir=\.git'
alias rg='rg -S --colors "line:fg:yellow" --colors "path:fg:green"'
alias trea='tree -a -I ".git"'
alias treea='trea'
alias tree='tree -I ".git"'
alias kc='eval $(keychain --nogui --eval --agents ssh,gpg --quick id_ed25519 id_rsa 8F3FB7BD7A6BF71D)'
alias kcs='eval $(keychain --nogui --eval --agents ssh --quick id_ed25519 id_rsa)'
alias kcks='pkill -9 ssh-agent'
alias kckg='pkill -9 gpg-agent'
alias kcr='kckg; kc'
alias gpga='eval $(gpg-agent --daemon)'
alias c=':; clear'
alias lvd='lvs -o "lv_path,lv_size,lv_attr" --units g'
alias lvdu='lvs -o "lv_path,lv_size,lv_attr,lv_uuid" --units g'
alias lvdm='lvs -o "lv_path,lv_size,lv_attr,lv_dmpath" --units g'
alias lvdmu='lvs -o "lv_path,lv_size,lv_attr,lv_dmpath,lv_uuid" --units g'
alias pping='prettyping'
alias pping6='prettyping -6'
alias p='prettyping -i 0.2'
alias p6='p -6'
alias a='ansible'
alias a10='ANSIBLE_TIMEOUT=10 ansible'
alias ap='ansible-playbook'
alias api='ANSIBLE_HOST_KEY_CHECKING=False ANSIBLE_SSH_ARGS="-o ControlMaster=auto -o ControlPersist=3s -o PreferredAuthentications=publickey -F .ssh_config -o UserKnownHostsFile=/dev/null" ansible-playbook'
alias ap10='ANSIBLE_TIMEOUT=10 ansible-playbook'
alias api10='ANSIBLE_HOST_KEY_CHECKING=False ANSIBLE_SSH_ARGS="-o ControlMaster=auto -o ControlPersist=3s -o PreferredAuthentications=publickey -F .ssh_config -o UserKnownHostsFile=/dev/null" ANSIBLE_TIMEOUT=10 ansible-playbook'
alias av='ansible-vault'
alias ai='ansible-inventory'

# it is better to override .vimrc location via environment variables
#alias vim="vim -u ${ENVRCD_PROFILE_PATH}/.vimrc"

# use colordiff if it exists
if [ $(which colordiff) ]; then
    alias diff='colordiff'
fi