Files
scripts/config/.bashrc

267 lines
7.2 KiB
Bash
Executable File

#!/bin/bash
# ~/.bashrc skeleton
# ~/.bashrc runs ONLY on non-login subshells! (different from ksh)
# add lines here very carefully as this may execute when you don't i
# expect them to
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#echo "BASHRC has run"
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# Source global definitions
#
if [ -f /etc/bashrc ]; then
. /etc/bashrc
else
if ! shopt -q login_shell ; then # We're not a login shell
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
if [ "$PS1" ]; then
. $i
else
. $i &>/dev/null
fi
fi
done
unset i
fi
fi
umask 002
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# Find out system details.
#
os=`uname -o` #GNU/Linux AIX Solaris
cpu=`uname -p` #x86_64 powerpc sparc
kernel=`uname -s` #Linux AIX SunOS
kversion=`uname -v`
krelease=`uname -r`
hostnm=`hostname`
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# Terminal colors if interactive
#
if [ -n "$PS1" ]; then
#
# If there is no terminal info in the system for current terminal but there is
# one in local terminfo then use it.
#
tput -T $TERM longname 2>/dev/null >/dev/null
if [ "$?" -ne "0" ] && [ -f $HOME/.terminfo/$kernel/${TERM:0:1}/$TERM ]; then
export TERMINFO=$HOME/.terminfo/$kernel;
fi
#
# Number of colors and standard colors.
#
c_num=$(tput colors)
# regular foreground
c_red=$(tput setaf 1)
c_green=$(tput setaf 2)
c_orange=$(tput setaf 3)
c_blue=$(tput setaf 4)
c_pink=$(tput setaf 5)
c_cyan=$(tput setaf 6)
c_white=$(tput setaf 7)
c_viol=$(tput setaf 12)
# bold foreground
#cbf_red=$(tput bold; tput setaf 1)
#
# Load better colors for ls.
#
if [ $c_num -ge 256 ] && [ -f ~/.dir_colors ]; then
eval $(dircolors ~/.dir_colors)
fi
fi
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# Prompt if interactive
#
if [ -n "$PS1" ]; then
#
# Set better colors if available.
#
if [ $c_num -ge 256 ]; then
c_reset="$(tput sgr0)"
c_user="$c_green"
c_cwd="$c_viol"
c_time="$c_pink"
c_branch="$c_cyan"
c_exit="$c_red"
c_jobs="$c_orange"
else
c_reset="$(tput sgr0)"
c_user="$c_green"
c_cwd="$c_viol"
c_time="$c_pink"
c_branch="$c_cyan"
c_exit="$c_red"
c_jobs="$c_orange"
fi
[ -n "$(which svn)" ] && prompt_check_svn=true
[ -n "$(which git)" ] && prompt_check_git=true
#
# Colors should be set here and surrounded with \[\]otherwise bash fails to
# calculate prompt length. The text is set through PROMPT_COMMAND
PS1="\[$c_user\]\u@\h: \[$c_cwd\]\w" # username@host: working_dir
PS1+="\[$c_branch\]\$git_text" # git branch
PS1+="\[$c_branch\]\$svn_text" # svn revision
PS1+="\[$c_exit\]\$exit_text" # exit status of last command
PS1+="\[$c_jobs\]\$jobs_text" # background/suspended jobs
PS1+=" \[$c_time\]\t" # time
PS1+="\[$c_reset\]\$ " # reset colors and print $
export PROMPT_COMMAND="__prompt_command; $PROMPT_COMMAND"
function __prompt_command()
{
#
# get exit code before any command is run.
# TODO: doesn't work on pi.
#
local exit_code="$?"
prompt_extra=""
#
# git branch if exist
#
if [ -n "$prompt_check_git" ]; then
local git_branch=$(git rev-parse --abbrev-ref HEAD 2> /dev/null | tr -d ' ')
if [ -n "$git_branch" ]; then
git_text="[$git_branch]"
else
git_text=""
fi
fi
#
# svn branch if exist
#
if [ -n "$prompt_check_svn" ]; then
local svn_rev=$(svn info . 2> /dev/null | awk -F ':' '/Revision:/ { print $2 }')
if [ -n "$svn_rev" ]; then
svn_text="[$svn_rev]"
else
svn_text=""
fi
fi
#
# exit code if not zero
#
if [ "$exit_code" -ne "0" ]; then
exit_text="[exit=$exit_code]"
else
exit_text=""
fi
#
# Info about jobs.
#
local jobs_bg=$(jobs -r | wc -l | tr -d ' ')
local jobs_stopped=$(jobs -s | wc -l | tr -d ' ')
if [ $jobs_bg -gt 0 ] || [ $jobs_stopped -gt 0 ]; then
jobs_text="[bg:$jobs_bg,stp:$jobs_stopped]"
else
jobs_text=""
fi
}
# Turn on checkwinsize
shopt -s checkwinsize
fi
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# User specific environment and startup programs
#
if [ $kernel == Linux ]; then
MYLOCAL=$HOME/local-lnx
elif [ $kernel == SunOS ]; then
MYLOCAL=$HOME/local-sun
fi
MYSCRIPTS=$HOME/devel/scripts
PATH=$MYLOCAL/bin:$PATH
PATH=$MYSCRIPTS/bin:$PATH
#
# VIM
#
export EDITOR=vim
#
# GIT
#
[ -f $MYSCRIPTS/bash/git-completion.bash ] && . $MYSCRIPTSE/bash/git-completion.bash
#
# GCC
#
#if [ -e /depot/gcc-4.7.2/bin ]; then
# PATH=/depot/gcc-4.7.2/bin:$PATH
# LD_LIBRARY_PATH=/depot/gcc-4.7.2/lib64:$LD_LIBRARY_PATH
#elif [ -e /depot/gcc-4.7.0/bin ]; then
# PATH=/depot/gcc-4.7.0/bin:$PATH
# LD_LIBRARY_PATH=/depot/gcc-4.7.0/lib64:$LD_LIBRARY_PATH
#elif [ -e /depot/gcc-4.5.2/bin ]; then
# PATH=/depot/gcc-4.5.2/bin:$PATH
# LD_LIBRARY_PATH=/depot/gcc-4.5.2/lib64:$LD_LIBRARY_PATH
#fi
#
# GDB
#
#prepath /depot/gdb-7.5.1/bin
#
# VTune Amplifier
#
#export INTEL_LICENSE_FILE=28518@us01-lic10:28518@us01-lic11:28518@us01-lic12:28518@tyndall
#alias vtune=/depot/vtune_amplifier_xe_2013_update5/bin64/amplxe-gui
#
# PURIFY and all.
#
#postpath /depot/coverity/swat/bin
#export RSU_TEMPLATE2_INI=/depot/pure/templates2.ini
#export RSU_LICENSE_MAP=/depot/pure/PurifyPlus_License_Map
#export PURECOVOPTIONS="-force-rebuild=no -log-file=./%v.%p.log -counts-file=./%v.%p.pcv -windows=no"
#export PUREOPTIONS="-force-rebuild=no -always-use-cache-dir=yes -cache-dir=$HOME/tmp/pure_cache"
#export QUANTIFYOPTIONS="-force-rebuild=no -always-use-cache-dir=yes -cache-dir=$HOME/tmp/pure_cache"
#export LD_LIBRARY_PATH=$HOME/prj/fw/rmain/3pty/qt/4.7.2/amd64/lib:$LD_LIBRARY_PATH
#alias purecov="/depot/swe/a2007.12/bin/purecov"
#alias quantify"/depot/swe/a2007.12/bin/quantify"
#
# Make sure to export PATH
#
export PATH
export HISTFILESIZE=5000 # Store 5000 commands in history
export HISTCONTROL=ignoredups # Don't put duplicate lines in the history.
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# Aliases
#
if [ $kernel == AIX ]; then
alias l='ls -a'
alias ls='ls -a'
alias ll='ls -la'
alias pd='pushd >/dev/null'
alias bd='popd'
else
alias l='ls -a --color=tty'
alias ls='ls -a --color=tty'
alias ll='ls -la --color=tty'
alias pd='pushd >/dev/null'
alias bd='popd'
fi
alias cgrep="grep --include \*.cpp --include \*.h --include \*.c"
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# Run local settings.
#
[ -f $PWD/.bashrc.local ] && . $PWD/.bashrc.local