Add prompt and dircolors setup .bashrc.d/15prompt_dircolors from Gentoo's /etc/bash...
authorW. Trevor King <wking@drexel.edu>
Thu, 1 Dec 2011 12:07:48 +0000 (07:07 -0500)
committerW. Trevor King <wking@drexel.edu>
Thu, 1 Dec 2011 12:17:24 +0000 (07:17 -0500)
src/.bashrc.d/15prompt_dircolors [new file with mode: 0644]

diff --git a/src/.bashrc.d/15prompt_dircolors b/src/.bashrc.d/15prompt_dircolors
new file mode 100644 (file)
index 0000000..dbb5b8f
--- /dev/null
@@ -0,0 +1,47 @@
+if [ "${OS}" != 'Gentoo' ] && [ "${OS}" != 'Gentoo Prefix' ]; then
+       use_color=false
+       
+       # Set colorful PS1 only on colorful terminals.
+       # dircolors --print-database uses its own built-in database
+       # instead of using /etc/DIR_COLORS.  Try to use the external file
+       # first to take advantage of user additions.  Use internal bash
+       # globbing instead of external grep binary.
+       safe_term=${TERM//[^[:alnum:]]/?}   # sanitize TERM
+       match_lhs=""
+       [[ -f ~/.dir_colors   ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
+       [[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
+       [[ -z ${match_lhs}    ]] \
+               && type -P dircolors >/dev/null \
+               && match_lhs=$(dircolors --print-database)
+       [[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
+       
+       if ${use_color} ; then
+               # Enable colors for ls, etc.  Prefer ~/.dir_colors #64489
+               if type -P dircolors >/dev/null ; then
+                       if [[ -f ~/.dir_colors ]] ; then
+                               eval $(dircolors -b ~/.dir_colors)
+                       elif [[ -f /etc/DIR_COLORS ]] ; then
+                               eval $(dircolors -b /etc/DIR_COLORS)
+                       fi
+               fi
+       
+               if [[ ${EUID} == 0 ]] ; then
+                       PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
+               else
+                       PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
+               fi
+       
+               alias ls='ls --color=auto'
+               alias grep='grep --colour=auto'
+       else
+               if [[ ${EUID} == 0 ]] ; then
+                       # show root@ when we don't have colors
+                       PS1='\u@\h \W \$ '
+               else
+                       PS1='\u@\h \w \$ '
+               fi
+       fi
+       
+       # Try to keep environment pollution down, EPA loves us.
+       unset use_color safe_term match_lhs
+fi