X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshenv;h=8e4ae78234718aeae80ea60cb71216994a20c93d;hb=41249966740c33a591b9dcc14edc37ddaa595bb6;hp=ab5c0fdafffa37bf6b68c17f3484d5123d87ad53;hpb=fc0aa71a93f54482517a96e01c200ffbdad825e5;p=grml-etc-core.git diff --git a/etc/zsh/zshenv b/etc/zsh/zshenv index ab5c0fd..8e4ae78 100644 --- a/etc/zsh/zshenv +++ b/etc/zsh/zshenv @@ -3,7 +3,6 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Sam Mai 17 22:52:27 CEST 2008 [mika] ################################################################################ # This file is sourced on all invocations of the shell. # It is the 1st file zsh reads; it's read for every shell, @@ -21,18 +20,21 @@ # Global Order: zshenv, zprofile, zshrc, zlogin ################################################################################ -# support ${HOME}/.zshenv: -if [[ -z "$ALREADY_SOURCED_ZSHENV" ]] ; then - export ALREADY_SOURCED_ZSHENV=1 -fi - # language settings (read in /etc/environment before /etc/default/locale as # the latter one is the default on Debian nowadays) # 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) -export HOSTNAME=${HOSTNAME:-$(hostname)} +if [ -n "${HOSTNAME}" ] ; then + export HOSTNAME="${HOSTNAME}" +elif [[ -x $(which hostname) ]] ; then + export HOSTNAME="$(hostname)" +elif [[ -x $(which hostnamectl) ]] ; then + export HOSTNAME="$(hostnamectl --static)" +else + export HOSTNAME="$(uname -n)" +fi # make sure /usr/bin/id is available if [[ -x /usr/bin/id ]] ; then @@ -49,58 +51,81 @@ if [[ -f /etc/grml_cd ]] ; then fi fi -# set $PATH +## set $PATH # gentoo users have to source /etc/profile.env if [[ -r /etc/gentoo-release ]] ; then - [[ -r /etc/profile.env ]] && source /etc/profile.env +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:$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" - else - PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/NX/bin$ADDONS" - fi +# support extra scripts/software in special directory outside of squashfs environment in live mode +if [[ -f /etc/grml_cd ]] ; then + [[ -r /run/live/medium/scripts ]] && ADDONS='/run/live/medium/scripts' + [[ -r /etc/grml/my_path ]] && ADDONS="$(cat /etc/grml/my_path)" 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" + 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 + /sbin + ~/bin + ) esac +# generic $PATH handling +if (( EUID != 0 )); then + path=( + $HOME/bin + /usr/local/bin + /usr/bin + /bin + /usr/local/sbin + /usr/sbin + /sbin + /usr/local/games + /usr/games + "${ADDONS}" + "${path[@]}" + ) +else + path=( + $HOME/bin + /usr/local/sbin + /usr/local/bin + /sbin + /bin + /usr/sbin + /usr/bin + "${ADDONS}" + "${path[@]}" + ) +fi + +# remove empty components to avoid '::' ending up + resulting in './' being in $PATH +path=( "${path[@]:#}" ) + +typeset -U path + # less (:=pager) options: # export LESS=C -if [[ -x /usr/bin/lesspipe.sh ]] ; then - export LESSOPEN="|lesspipe.sh %s" -elif [[ -x /usr/bin/lesspipe ]] ; then +typeset -a lp; lp=( ${^path}/lesspipe(N) ) +if (( $#lp > 0 )) && [[ -x $lp[1] ]] ; then export LESSOPEN="|lesspipe %s" +elif [[ -x /usr/bin/lesspipe.sh ]] ; then + export LESSOPEN="|lesspipe.sh %s" fi -export READNULLCMD=${PAGER:-/usr/bin/pager} +unset lp -# support termcap colors when using PAGER=less: -# TODO: move these to zshrc, they are only relevant in interactive shells -export LESS_TERMCAP_mb=$'\E[01;31m' -export LESS_TERMCAP_md=$'\E[01;31m' -export LESS_TERMCAP_me=$'\E[0m' -export LESS_TERMCAP_se=$'\E[0m' -export LESS_TERMCAP_so=$'\E[01;44;33m' -export LESS_TERMCAP_ue=$'\E[0m' -export LESS_TERMCAP_us=$'\E[01;32m' +export READNULLCMD=${PAGER:-/usr/bin/pager} # allow zeroconf for distcc export DISTCC_HOSTS="+zeroconf"