aboutsummaryrefslogtreecommitdiff
path: root/sh/profile.d/ls.sh
diff options
context:
space:
mode:
Diffstat (limited to 'sh/profile.d/ls.sh')
-rw-r--r--sh/profile.d/ls.sh25
1 files changed, 18 insertions, 7 deletions
diff --git a/sh/profile.d/ls.sh b/sh/profile.d/ls.sh
index 7757f3fe..a477c510 100644
--- a/sh/profile.d/ls.sh
+++ b/sh/profile.d/ls.sh
@@ -1,8 +1,19 @@
-if command -v dircolors >/dev/null 2>&1 ; then
- if [ -r "$HOME"/.dircolors ] ; then
- eval "$(dircolors --sh -- "$HOME"/.dircolors)"
- else
- eval "$(dircolors --sh)"
- fi
-fi
+# Store ls(1)'s --help output in a variable
+ls_help=$(ls --help 2>/dev/null)
+
+# Run dircolors(1) to export LS_COLORS if available and appropriate
+case $ls_help in
+ *--color*)
+ if command -v dircolors >/dev/null 2>&1 ; then
+ if [ -r "$HOME"/.dircolors ] ; then
+ eval "$(dircolors --sh -- "$HOME"/.dircolors)"
+ else
+ eval "$(dircolors --sh)"
+ fi
+ fi
+ ;;
+esac
+
+# We're done parsing ls(1)'s --help output now
+unset -v ls_help