[packages/coreutils] - cleanup and update colorls scripts for 256 color terminals

baggins baggins at pld-linux.org
Sun Feb 9 20:03:40 CET 2014


commit ab20b3dd9f4bbf34090d33d8e4e8e8a9161dabbd
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sun Feb 9 13:41:44 2014 +0100

    - cleanup and update colorls scripts for 256 color terminals

 colorls.csh | 30 +++++++++++++++---------------
 colorls.sh  | 26 ++++++++++++++++----------
 2 files changed, 31 insertions(+), 25 deletions(-)
---
diff --git a/colorls.csh b/colorls.csh
index 4b7249e..267470e 100644
--- a/colorls.csh
+++ b/colorls.csh
@@ -1,32 +1,32 @@
-set SYS_RC_FILE=/etc/DIR_COLORS
+# skip everything for non-interactive shells
+if (! $?prompt) exit
+
+if ( "`tty -s && tput colors 2>/dev/null`" == "256" ) then
+	set RC_FILE="/etc/DIR_COLORS.256color"
+else
+	set RC_FILE="/etc/DIR_COLORS"
+endif
 set USER_RC_FILE=$HOME/.dir_colors
-set DEF_COLOR_MODE=tty
+set DEF_COLOR_MODE=auto
 
 set COLOR_MODE=`awk '/^COLOR/{c=$2} END{print c}' $SYS_RC_FILE`
 
-test -r $USER_RC_FILE
-if ($status == 0) then
+if ( -r $USER_RC_FILE ) then
 	set COLOR_MODE=`awk '/^COLOR/{c=$2} END{print c}' $USER_RC_FILE`
+	set RC_FILE=$USER_RC_FILE
 endif
 
 # 'all' argument for 'ls --color=' is no longer valid
-test "$COLOR_MODE" = all
-if ($status == 0) then
+if ( "$COLOR_MODE" == "all" ) then
 	set COLOR_MODE=always
 endif
 
-test -z "$COLOR_MODE"
-if ($status == 0) then
+if ( "$COLOR_MODE" == '') then
 	set COLOR_MODE=$DEF_COLOR_MODE
 endif
 
 alias ls "ls --color=$COLOR_MODE"
 
-test -r $USER_RC_FILE
-if ($status == 0) then
-	eval `/usr/bin/dircolors -c $USER_RC_FILE`
-else	
-	eval `/usr/bin/dircolors -c $SYS_RC_FILE`
-endif
+eval `/usr/bin/dircolors -c $RC_FILE`
 
-unset SYS_RC_FILE USER_RC_FILE DEF_COLOR_MODE
+unset RC_FILE USER_RC_FILE DEF_COLOR_MODE COLOR_MODE
diff --git a/colorls.sh b/colorls.sh
index d28d074..32d3cd3 100644
--- a/colorls.sh
+++ b/colorls.sh
@@ -1,10 +1,20 @@
-SYS_RC_FILE=/etc/DIR_COLORS
+# Skip all for noninteractive shells.
+[ -z "$PS1" ] && return
+
+if [ "`tty -s && tput colors 2>/dev/null`" = "256" ]; then
+	RC_FILE="/etc/DIR_COLORS.256color"
+else
+	RC_FILE="/etc/DIR_COLORS"
+fi
 USER_RC_FILE=$HOME/.dir_colors
-DEF_COLOR_MODE=tty
+DEF_COLOR_MODE=auto
 
-COLOR_MODE=`awk '/^COLOR/{c=$2} END{print c}' $SYS_RC_FILE`
+COLOR_MODE=`awk '/^COLOR/{c=$2} END{print c}' $RC_FILE`
 
-[ -r $USER_RC_FILE ] && COLOR_MODE=`awk '/^COLOR/{c=$2} END{print c}' $USER_RC_FILE`
+if [ -r $USER_RC_FILE ]; then
+	COLOR_MODE=`awk '/^COLOR/{c=$2} END{print c}' $USER_RC_FILE`
+	RC_FILE=$USER_RC_FILE
+fi
 
 # 'all' argument for 'ls --color=' is no longer valid
 [ "$COLOR_MODE" = all ] && COLOR_MODE=always
@@ -13,10 +23,6 @@ COLOR_MODE=`awk '/^COLOR/{c=$2} END{print c}' $SYS_RC_FILE`
 
 alias ls="ls --color=$COLOR_MODE"
 
-if [ -r $USER_RC_FILE ]; then
-	eval `/usr/bin/dircolors -b $USER_RC_FILE`
-else	
-	eval `/usr/bin/dircolors -b $SYS_RC_FILE`
-fi
+eval `/usr/bin/dircolors -b $RC_FILE`
 
-unset SYS_RC_FILE USER_RC_FILE DEF_COLOR_MODE COLOR_MODE
+unset RC_FILE USER_RC_FILE DEF_COLOR_MODE COLOR_MODE
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/coreutils.git/commitdiff/aa3c9e51e955d2f55aa74a38988ac3e96001bf57



More information about the pld-cvs-commit mailing list