Fix ls (and grep) option handling on non-linux systems
[grml-etc-core.git] / etc / zsh / zshenv
index b29d249..57e45f2 100644 (file)
@@ -3,7 +3,6 @@
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Sam Mär 17 12:18:26 CET 2007 [mika]
 ################################################################################
 # This file is sourced on all invocations of the shell.
 # It is the 1st file zsh reads; it's read for every shell,
 
 # language settings (read in /etc/environment before /etc/default/locale as
 # the latter one is the default on Debian nowadays)
-  [ -r /etc/environment    ] && source /etc/environment
-  if [ -n "$LANG" ]  ; then
-     export LANG
-  else
-     [ -r /etc/default/locale ] && source /etc/default/locale
-  fi
-  [ -n "$LANG" ]          && export LANG || export LANG="en_US.iso885915"
-  [ -n "$LC_ALL" ]        && export LC_ALL
-  [ -n "$LC_MESSAGES" ]   && export LC_MESSAGES
-
-  [ -r /etc/sysconfig/keyboard ] && source /etc/sysconfig/keyboard
-  [ -r /etc/timezone ] && source /etc/timezone
+# no xsource() here because it's only created in zshrc! (which is good)
+[[ -r /etc/environment ]] && source /etc/environment
 
 # set environment variables (important for autologin on tty)
-  [ -z "$HOSTNAME" ]      && export HOSTNAME=`hostname`
-  [ -z "$USER" ]          && export USER=`id -un`
-  [[ $LOGNAME == LOGIN ]] && LOGNAME=$(id -un)
+export HOSTNAME=${HOSTNAME:-$(hostname)}
+
+# make sure /usr/bin/id is available
+if [[ -x /usr/bin/id ]] ; then
+    [[ -z "$USER" ]]          && export USER=$(/usr/bin/id -un)
+    [[ $LOGNAME == LOGIN ]] && LOGNAME=$(/usr/bin/id -un)
+fi
 
 # workaround for live-cd mode as $HOME is not set via rungetty
-  if [ -f /etc/grml_cd ] ; then
+if [[ -f /etc/grml_cd ]] ; then
     if (( EUID == 0 )); then
-       export HOME=/root
+        export HOME=/root
     else
-       export HOME=/home/$USER
+        export HOME=/home/$USER
     fi
-  fi
+fi
 
 # set $PATH
 # gentoo users have to source /etc/profile.env
-  if [ -r /etc/gentoo-release ] ; then
-     [ -r /etc/profile.env ] && source /etc/profile.env
-       if (( EUID != 0 )); then
-          PATH="$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/games:/usr/NX/bin:$PATH"
-       else
-          PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/NX/bin:$PATH"
-       fi
-  else
-    # support extra software in special directory outside of squashfs environment in live-cd mode
-    if [ -f /etc/grml_cd ] ; then
-       [ -d /cdrom/addons/ ] && ADDONS=':/cdrom/addons/'
+if [[ -r /etc/gentoo-release ]] ; then
+
+    [[ -r /etc/profile.env ]] && source /etc/profile.env
+
+    if (( EUID != 0 )); then
+        PATH="$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/games:/usr/NX/bin:$PATH"
+    else
+        PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/NX/bin:$PATH"
+    fi
+else
+# support extra software in special directory outside of squashfs environment in live-cd mode
+    if [[ -f /etc/grml_cd ]] ; then
+       [[ -r /cdrom/addons ]]      && ADDONS=':/cdrom/addons'
+       [[ -r /live/image/addons ]] && ADDONS=':/live/image/addons'
+       [[ -r /etc/grml/my_path ]]  && ADDONS=":$(cat /etc/grml/my_path)"
     fi
+
     if (( EUID != 0 )); then
-      PATH="$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/games:/usr/NX/bin$ADDONS"
+        PATH="$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/games:/usr/NX/bin$ADDONS"
     else
-      PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/NX/bin$ADDONS"
+        PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/NX/bin$ADDONS"
     fi
-#  fi
-  fi
+fi
+
+# Solaris
+case $(uname 2>/dev/null) in
+  SunOS)
+     PATH="/usr/bin:/usr/sbin:/usr/ccs/bin:/opt/SUNWspro/bin:/usr/ucb:/usr/sfw/bin:/usr/gnu/bin:/usr/openwin/bin:/opt/csw/bin:/opt/swf/bin:/sbin:/usr/sbin:~/bin"
+     # LD_LIBRARY_PATH="/opt/csw/lib:/opt/sfw/lib:/usr/lib:/usr/local/lib:/usr/ccs/lib:/usr/openwin/lib:/usr/ucb/lib"
+     # MANPATH="$MANPATH:/opt/csw/man:/usr/man:/usr/share/man:/usr/local/man:/opt/sfw/man"
+esac
 
 # less (:=pager) options:
 #  export LESS=C
-  export LESSOPEN="|lesspipe.sh %s"
-  export READNULLCMD=${PAGER:-/usr/bin/pager}
+if [[ -x /usr/bin/lesspipe.sh ]] ; then
+    export LESSOPEN="|lesspipe.sh %s"
+elif [[ -x /usr/bin/lesspipe ]] ; then
+    export LESSOPEN="|lesspipe %s"
+fi
+export READNULLCMD=${PAGER:-/usr/bin/pager}
 
 # allow zeroconf for distcc
-  export DISTCC_HOSTS="+zeroconf"
+export DISTCC_HOSTS="+zeroconf"
 
 # MAKEDEV should be usable on udev as well by default:
-  export WRITE_ON_UDEV=yes
+export WRITE_ON_UDEV=yes
 
 ## END OF FILE #################################################################
+# vim:filetype=zsh foldmethod=marker autoindent expandtab shiftwidth=4