export XDG_RUNTIME_DIR=/run/user/$(id -u `whoami`)
# export LD_LIBRARY_PATH=/ec/dev/app/cedadmin/lib:$LD_LIBRARY_PATH
export PATH=`readlink -f /ec/local/server/symas/sbin`:`readlink -f /ec/local/server/symas/bin`:`readlink -f /ec/local/server/symas/lib64`:`readlink -f /ec/local/app/cedadmin/bin`:`readlink -f /ec/local/app/cedadmin/sbin`:$PATH:~/bin:/usr/libexec
export EDITOR=vim

export HOSTNAME=`hostname`

if [ "`tty`" != 'not a tty' ]
then
    # Set a 256 colors terminal as it works perfectly with Putty and others
    # TERM=xterm-256color ; export TERM
    TERM=screen-256color ; export TERM
    export HISTTIMEFORMAT="%d/%m/%y %T "
    export HISTCONTROL=ignoreboth:erasedups
    PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
    MANPATH=/ec/local/server/symas/share/man:$MANPATH ; export MANPATH

    # enable bash completion in interactive shells
    if ! shopt -oq posix; then
        if [ -f /usr/share/bash-completion/bash_completion ]; then
            . /usr/share/bash-completion/bash_completion
        elif [ -f /etc/bash_completion ]; then
            . /etc/bash_completion
        fi
    fi

    # Set Bash specific options

    # ANSI Heaven
    # Hit CTRL+V then Escape to get the \033 character
    ## Reset to normal: [0m
    NORM="[0m"

    ## Colors:
    BLACK="[0;30m"
    GRAY="[1;30m"
    RED="[0;31m"
    LRED="[1;31m"
    GREEN="[0;32m"
    LGREEN="[1;32m"
    YELLOW="[0;33m"
    LYELLOW="[1;33m"
    BLUE="[0;34m"
    LBLUE="[1;34m"
    PURPLE="[0;35m"
    PINK="[1;35m"
    CYAN="[0;36m"
    LCYAN="[1;36m"
    LGRAY="[0;37m"
    WHITE="[1;37m"

    ## Backgrounds
    BLACKB="[0;40m"
    REDB="[0;41m"
    GREENB="[0;42m"
    YELLOWB="[0;43m"
    BLUEB="[0;44m"
    PURPLEB="[0;45m"
    CYANB="[0;46m"
    GREYB="[0;47m"

    ## Attributes:
    UNDERLINE="[4m"
    BOLD="[1m"
    INVERT="[7m"

    ## Cursor movements
    CUR_UP="[1A"
    CUR_DN="[1B"
    CUR_LEFT="[1D"
    CUR_RIGHT="[1C"

    ## Start of display (top left)
    SOD="[1;1f"
    # ANSI Heaven

    echo "${LGREEN}TTY detected${NORM}, activating ${LRED}c${LGREEN}o${LBLUE}l${YELLOW}o${PURPLE}r${PINK}s$NORM ..."
    echo "Here starts .bashrc"
    echo ".bashrc version 1.1"
    export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

    PS1="$LYELLOW`whoami`$LBLUE@$LGREEN${HOSTNAME}$WHITE$BLUEB$RED:$WHITE\${PWD##*/} $NORM \$ "
    export PS1

    # source /opt/symas/etc/openldap/symas-bin-aliases.sh

    alias ll='ls -l'
    alias xz='xz -T 0'
    alias search="ldapsearch -Q -Y EXTERNAL -H ldapi://%2Fec%2Flocal%2Fserver%2Fslapdlogs%2Fvar%2Frun%2Fldapi -b 'o=cec.eu.int' -s sub -o ldif_wrap=no -LLL "
    alias modify="ldapmodify -Q -Y EXTERNAL -H ldapi://%2Fec%2Flocal%2Fserver%2Fslapdlogs%2Fvar%2Frun%2Fldapi "
    alias deletedn="ldapdelete -Q -Y EXTERNAL -H ldapi://%2Fec%2Flocal%2Fserver%2Fslapdlogs%2Fvar%2Frun%2Fldapi "
    alias searchtrailing="export GREP_COLOR='0;41'; grep --col -Enm5 '\s+$' "
    alias ldaplog="tail -f /ec/local/server/slapdlogs/logs/slapd_2.6.log | sed -e '0,/ dn=/s/\(dn=".*"\)/\o033[1;32m\1\o033[39m/g' -e 's/\(IP=\)/\o033[1;32m\1\o033[39m/g' -e 's/\( BIND\| SRCH\| SEARCH RESULT\| UNBIND\| ACCEPT\| RESULT\| ADD\| DEL\| MOD\)/\o033[35m\1\o033[39m/g' -e 's/\(err=[0-9][0-9]*\)/\o033[31m\1\o033[39m/' -e 's/\(STARTTLS\|TLS established\|mech=\|tls_ssf=\|tls_proto=\|tls_cipher=\|ssf=\)/\o033[1;36m\1\o033[39m/g' -e 's/\(filter=\|deref=\|scope=\|base=\|nentries=\|attr=\)/\o033[33m\1\o033[39m/g' -e 's/\( nentries=\| etime=\| time=\)/\o033[1;32m \1\o033[39m/g'"
    alias vilog='vi /ec/local/server/slapdlogs/logs/slapd_2.6.log'
    alias ldapstart='/usr/bin/systemctl --user start slapd'
    alias ldapstop='/usr/bin/systemctl --user stop slapd'
    alias ldaprestart='/usr/bin/systemctl --user restart slapd'
    alias ldapstatus='ps -efZ | \grep [s]lapd ; /usr/bin/systemctl --user status slapd'
# ------------------------------------------------------#
fi

# ------------------------------------------------------#
# Custom variables specific for local perl installation
# and local oracle client installation
# ------------------------------------------------------#
ORACLE_HOME=/ec/local/app/cedadmin/oracle ; export ORACLE_HOME
ORACLE_PATH=$ORACLE_HOME ; export ORACLE_PATH
NLS_LANG=AMERICAN_AMERICA.AL32UTF8; export NLS_LANG
# ------------------------------------------------------#
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME ; export LD_LIBRARY_PATH
PATH="/ec/local/app/cedadmin/perl5/bin:$ORACLE_HOME:$PATH"; export PATH;
# export PERL5LIB=$HOME/iamopsunix-perl5/redhat7/lib/perl5/:$HOME/iamopsunix-perl5/redhat6/share/perl5
PERL5LIB="/ec/local/app/cedadmin/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/ec/local/app/cedadmin/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/ec/local/app/cedadmin/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/ec/local/app/cedadmin/perl5"; export PERL_MM_OPT;
PERL_BASE=$HOME ; export PERL_BASE

# For build servers only
if [ $HOSTNAME == 'digiamcedmd21.cc.cec.eu.int' -o $HOSTNAME == 'digiamcedmd21.cc.cec.eu.int' ]
then
  LD_PRELOAD="/ec/local/app/cedadmin/src/stderred/build/libstderred.so${LD_PRELOAD:+:$LD_PRELOAD}" ; export LD_PRELOAD
fi

# ------------------------------------------------------#
# Source start script for CED monitoring and insertion
# of error messgaes back to CUD DIR_CUD_INDUS_LOG
. /ec/local/app/cedadmin/ced02/exploit/script/start
# ------------------------------------------------------#
export SSL_CERT_DIR=$LDAPCERT:/ec/local/server/symas/ssl
echo "
+------------------------------------+
|                                    |
|   -=-=-=-=-=-=-=-=-=-=-=-=-=-=-    |
| < OpenLDAP CED/EUDS training VM >  |
|   -=-=-=-=-=-=-=-=-=-=-=-=-=-=-    |
|                                    |
| Credentials per suffix:            |
| for o=cec.eu.int                   |
| cn=Directory Manager,o=cec.eu.int  |
| S3cr3t                             |
|                                    |
| for cn=config                      |
| cn=admin,cn=config                 |
| adminS3cr3t                        |
|                                    |
| All files used for creation are    |
| under ~cedadmin/install            |
|                                    |
+------------------------------------+

Useful variables and aliases:
LDAPLOG        : Location for OpenLDAP logs
LDAPCERT       : Location for certificates used by OpenLDAP
LDAPCONF       : Location for cn=config database (do not edit)
LDAPCONFC      : Location for consumer cn=config database
LDAPDB         : Location for OpenLDAP LMDB backend database files
search         : LDAP search from RootDN using filter passed as parameter #1
modify         : shortcut for ldapmodify, requires LDIF file
deletedn       : shortcut for ldapdelete, requires the dn to be deleted
vilog          : open current OpenLDAP log using vi
ldaplog        : Colorized tail -f on OpenLDAP logs
ldapstart      : start OpenLDAP using systemd
ldapstop       : stop OpenLDAP using systemd
ldaprestart    : restart OpenLDAP using systemd
ldapstatus     : Show OpenLDAP status
"
echo "
More aliases   :
ldaplogc       : Colorized tail -f on OpenLDAP consumer logs
vilogc         : open current OpenLDAP consumer log using vi
start-consumer : Start LDAP consumer

More variables :
LDAPI          : Path to ldapi socket for provider
LDAPIC         : Path to ldapi socket for consumer
LDAPCONFC      : Path to consumer cn=config database
LDAPDBC        : Location for OpenLDAP consumer LMDB backend database files
"
if [[ -n "$TMUX" ]]; then
  export TERM=screen-256color
    PS1='\u@\h:\W \\$ '
    export PS1
fi
alias start-consumer='/ec/local/server/symas/lib/slapd -h "ldap://:22389/ ldaps://:22636/ ldapi://%2Fec%2Flocal%2Fserver%2Fslapdlogs%2Fvar%2Frun%2Fldapic" -F /ec/local/server/symas/etc/openldap/slapd-consumer.d -u cedadmin -g cedldap -d 16640'
export LDAPI="ldapi://%2Fec%2Flocal%2Fserver%2Fslapdlogs%2Fvar%2Frun%2Fldapi"
export LDAPIC="ldapi://%2Fec%2Flocal%2Fserver%2Fslapdlogs%2Fvar%2Frun%2Fldapic"
export LDAPCONFC="/ec/local/server/symas/etc/openldap/slapd-consumer.d"
export LDAPDBC=/ec/local/server/symas/openldap-data
alias vilogc='vi /ec/local/server/slapdlogs/logs/slapd_2.6_consumer.log'
alias ldaplogc='tail -f /ec/local/server/slapdlogs/logs/slapd_2.6_consumer.log | sed -e '\''0,/ dn=/s/\(dn=.*\)/\o033[1;32m\1\o033[39m/g'\'' -e '\''s/\(IP=\)/\o033[1;32m\1\o033[39m/g'\'' -e '\''s/\( BIND\| SRCH\| SEARCH RESULT\| UNBIND\| ACCEPT\| RESULT\| ADD\| DEL\| MOD\)/\o033[35m\1\o033[39m/g'\'' -e '\''s/\(err=[0-9][0-9]*\)/\o033[31m\1\o033[39m/'\'' -e '\''s/\(STARTTLS\|TLS established\|mech=\|tls_ssf=\|tls_proto=\|tls_cipher=\|ssf=\)/\o033[1;36m\1\o033[39m/g'\'' -e '\''s/\(filter=\|deref=\|scope=\|base=\|nentries=\|attr=\)/\o033[33m\1\o033[39m/g'\'' -e '\''s/\( nentries=\| etime=\| time=\)/\o033[1;32m \1\o033[39m/g'\'''
alias ll='ls -l'
tmx() {
S=$(tmux list-sessions)
if [[ $? -eq 1 ]]; then
  tmux
else
  if [[ $(echo "$S" | grep -c 'windows') -eq 1 ]]; then
    tmux attach
  else
    echo -e "
Current tmux Sessions:
"
    echo -e "$S
"
    read -rp "Enter Session Number: " session_num
    tmux attach -t "$session_num"
  fi
fi
}
mdcd() { mkdir -p "$1" && cd "$1"; }
alias tmls="tmux list-sessions"
alias myip="ip address | grep 'inet ' | grep -v '127.0.0.1'"
alias ldifunwrap='sed ":a;$!{N;ba};s/\n //g"'

