]> arthur.barton.de Git - ConfigScripts.git/blobdiff - sys/bashrc
Set color-related variables if a color-capable terminal is detected
[ConfigScripts.git] / sys / bashrc
index fe509e369ccf3c7d30a3781d7236933e098e9b08..c32791c66f60ee614808aa7d0000de5867f5c3ab 100644 (file)
@@ -1,36 +1,16 @@
 #
 # /etc/bash.bashrc: System-wide rc file for interactive bash(1) shells.
-#
-# 2008-08-07, alex@barton.de
-#  - ls: Detech BSD color support (-G).
-#  - Support /etc/chroot_name
-# 2008-07-09, alex@barton.de
-#  - Added support for /usr/lib/command-not-found.
-# 2008-06-06, alex@barton.de
-#  - Source /etc/[bash].bashrc.local as well, if readable.
-# 2007-04-05, alex@barton.de
-#  - Define shell functions sshtmp() and sshnew().
-# 2006-01-04, alex@barton.de
-#  - Only call dircolors(1) and lesspipe(1) if they are available.
-#  - Check wether ls(1) knows something about "--color".
-# 2005-12-29, alex@barton.de
-#  - Enabled bash completion
-# 2004-09-13, alex@Arthur.Ath.CX
-#  - Made script more generic ...
-# 2004-05-27, alex@Arthur.Ath.CX
+# Written 2003-2010 by Alexander Barton (alex@barton.de)
 #
 
-[ -e /tmp/ConfigDebug.$USER ] && echo " >> /etc/bash.bashrc ..."
+[ -e ~/.ConfigScripts.debug ] && echo " >> /etc/bash.bashrc ..."
 
 BASHRCREAD="true"
 
 [ -z "$PROFILEREAD" -a -r /etc/profile ] && source /etc/profile
 
 # Interactive shell?
-if [ ! "$PS1" ]; then
-       [ -r "/var/lib/$ME/bash.bashrc" ] && source /var/lib/$ME/bash.bashrc
-       return
-fi
+[ "$PS1" ] || return
 
 # Shell options
 shopt -s checkwinsize
@@ -48,17 +28,55 @@ sshtmp() {
        ssh -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" "$@"
 }
 
+# Colors
+case "$TERM" in
+       ansi|cons25|cygwin|dtterm|linux|rxvt|screen*|vt100|vt200|vt220|vt320| \
+       xterm|xterm-color)
+               # color terminal
+
+               # colors for shell prompt etc.
+               COLOR_RESET="\[\e[0m\]"
+               COLOR_PREPOSTTXT="\[\e[1;37m\]"
+               COLOR_USER="\[\e[0;4m\]"
+               COLOR_AT="\[\e[0;37m\]"
+               COLOR_HOST="\[\e[0;4m\]"
+               COLOR_COLON="\[\e[0;37m\]"
+               COLOR_PATH=$reset
+               COLOR_PROMPT_USER="\[\e[1;32m\]"
+               COLOR_PROMPT_ROOT="\[\e[1;31m\]"
+               COLOR_VCS="\[\e[1;33m\]"
+
+               # colors for less(1) pager
+               export LESS_TERMCAP_mb=$'\E[1;33m'
+               export LESS_TERMCAP_md=$'\E[1;31m'
+               export LESS_TERMCAP_me=$'\E[0m'
+               export LESS_TERMCAP_se=$'\E[0m'
+               export LESS_TERMCAP_so=$'\E[1;33;44m'
+               export LESS_TERMCAP_ue=$'\E[0m'
+               export LESS_TERMCAP_us=$'\E[1;32m'
+esac
+
 # Shell prompt
-prefix="${chroot_name:+($chroot_name)}"
 [ "$UID" -eq 0 ] \
-       && PS1="${prefix}\h:\w \\\$ " \
-       || PS1="${prefix}\u@\h:\w \\\$ "
+       && PS1="\h:\w \\\$ " \
+       || PS1="\u@\h:\w \\\$ "
+if [ "\$(type -t __git_ps1)" ]; then
+       PS1="\$(__git_ps1 '(%s) ')$PS1"
+fi
+PS1="${chroot_name:+[$chroot_name] }$PS1"
 
 # Enable bash completion, if available
-[ -r /etc/bash_completion ] && source /etc/bash_completion
+[ -z "$BASH_COMPLETION" -a -r /etc/bash_completion ] \
+       && source /etc/bash_completion
+[ -z "$BASH_COMPLETION" -a -r /opt/homebrew/etc/bash_completion ] \
+       && source /opt/homebrew/etc/bash_completion
+[ -z "$BASH_COMPLETION" -a -r /opt/local/etc/bash_completion ] \
+       && source /opt/local/etc/bash_completion
 
 # If the command-not-found package is installed, use it
-if [ -x /usr/lib/command-not-found ]; then
+if [ -r /etc/bash_command_not_found ]; then
+       . /etc/bash_command_not_found
+elif [ -x /usr/lib/command-not-found ]; then
        function command_not_found_handle {
                # Check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
@@ -78,10 +96,30 @@ alias "ll"="ls -l"
 alias "l"="ll -a"
 alias "lasth"="last | head -n \`expr \\\$LINES - 2\`"
 
-# less filter
+# Aliases for screen(1), if installed
+type -p screen >/dev/null 2>&1
+if [ $? -eq 0 ]; then
+       alias "s"="screen"
+       alias "sr"="screen -dr"
+       alias "sx"="screen -x"
+fi
+
+# less(1) filter, if available
 type -p lesspipe >/dev/null 2>&1 && eval `lesspipe`
 
-# Enable color support of ls and also add handy aliases
+# Initialize ccache(1), if installed
+if [ -d "/usr/lib/ccache" ]; then
+       PATH="/usr/lib/ccache:$PATH"
+       # Set the cache directory to local storage, if available
+       [ -w "/usr/local/home/$USER" ] \
+               && export CCACHE_DIR="/usr/local/home/$USER/.ccache"
+fi
+
+# Setup slrn(1) and cleanscore(1), if installed
+type -p cleanscore >/dev/null 2>&1
+[ $? -eq 0 ] && alias slrn="cleanscore -f ~/.slrnscore && slrn"
+
+# Enable color support of ls(1) and also add handy aliases
 if [ "$TERM" != "dumb" ]; then
        type -p dircolors >/dev/null 2>&1 && eval `dircolors -b`
        ls --color / >/dev/null 2>&1
@@ -100,7 +138,7 @@ fi
 # If this is an xterm set the title to user@host:dir
 case $TERM in
 xterm*|rxvt|screen)
-       PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
+       PROMPT_COMMAND='printf "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
        ;;
 *)
        ;;