[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