# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
#
# dash has no line editor, so erase/kill/echo handling depends entirely on
# the kernel tty line discipline. `sane` restores the usual login defaults
# (icrnl/onlcr so CR/LF and line wrap behave, echoe/echok/echoctl so erase
# and line-kill redraw the screen) in case a serial console's line
# discipline differs from them. erase is then pinned to ^H because agetty
# only latches VERASE from a byte the user actually typed at the login
# prompt and otherwise defaults to DEL, which can mismatch the key the
# terminal sends and show up as a literal ^H that never erases.
if [ -t 0 ] && [ "${-#*i}" != "$-" ]; then
    stty sane erase '^H' 2>/dev/null
fi

if [ -n "$BASH_VERSION" ]; then
    PS1='\u:\w> '
else
    # POSIX shells re-expand PS1 on every prompt but know no \u / \w escapes
    __sh_prompt () {
        dir=$PWD
        case $dir in
            "$HOME") dir='~' ;;
            "$HOME"/*) dir="~${dir#"$HOME"}" ;;
        esac
        printf '%s:%s> ' "$USER" "$dir"
    }
    PS1='$(__sh_prompt)'
fi

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}


if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
        # ksh workaround
        EUID=`id -u`
        UID=`id -ru`
    fi
    USER="`id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
fi

HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export LANG=POSIX
export LC_ALL=POSIX

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then 
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done

unset i
unset -f pathmunge

# Completion scripts are bash-only, and extglob patterns would abort the
# parser of any other shell reading this file, so keep them POSIX-parseable
if [ -n "$BASH_VERSION" ]; then
    shopt -s extglob

    compat_dir=${BASH_COMPLETION_COMPAT_DIR:-/etc/bash_completion.d}
    if [ -d "$compat_dir" ] && [ -r "$compat_dir" ] && [ -x "$compat_dir" ]; then
        for i in "$compat_dir"/*; do
            [ -f "$i" ] && [ -r "$i" ] || continue
            case ${i##*/} in
                '#'*'#'|*'~'|*.bak|*.orig|*.rej|*.swp|*.dpkg*|*.rpmorig|*.rpmnew|*.rpmsave|Makefile*)
                    ;;
                *)
                    . "$i"
                    ;;
            esac
        done
        unset i
    fi
    unset compat_dir
fi
