view .zshrc @ 377:117e3c11d953

zprofile: introduce zprofile use El Capitan (OS X 10.11) introduces a system-level /etc/zprofile which uses a path_helper thing to mangle $PATH. Unfortunately, the way path_helper works, it forces /usr/local/bin and /usr/bin to the *start* of the PATH variable, which means that any PATH mutations I want have to run after /etc/zprofile calls path_helper. As such, move my path insertions into .zprofile{,-machine} rather than .zshenv{,-machine} so that I can still ensure my path entries are at the start of PATH rather than the end. This works because: > Commands are then read from $ZDOTDIR/.zshenv. If the shell is a > login shell, commands are read from /etc/zprofile and then > $ZDOTDIR/.zprofile. Then, if the shell is interactive, commands > are read from /etc/zshrc and then $ZDOTDIR/.zshrc. Finally, if the > shell is a login shell, /etc/zlogin and $ZDOTDIR/.zlogin are read. This means that non-login shells no longer pick up my custom PATH entries, but as I only use OS X as a desktop OS that seems like a workable tradeoff for now.
author Augie Fackler <raf@durin42.com>
date Sun, 31 Jan 2016 20:46:29 -0500
parents a7f5b0526a51
children b78aa03c0c00
line wrap: on
line source

# Augie Fackler's zshrc file

for file in $(ls $HOME/.shell.d/*.{,z}sh) ; do
    source $file
done

# Login greeting ------------------

if [ ! "$SHOWED_SCREEN_MESSAGE" = "true" ]; then
        # Use /bin/which explicitly because we have a shell function
        # that confuses the zsh built-in which.
        if sh -c 'which screen' > /dev/null; then
                detached_screens=`screen -list | grep Detached | sed -e 's/	(Detached)//'`
                if [ ! -z "$detached_screens" ]; then
                        echo "+---------------------------------------+"
                        echo "| Detached screens are available:       |"
                        echo "$detached_screens"
                        echo "+---------------------------------------+"
                fi
        fi
        export SHOWED_SCREEN_MESSAGE="true"
fi

if [ ! "$SHOWED_TMUX_MESSAGE" = "true" ]; then
  if which tmux > /dev/null; then
    detached_screens=$(tmux ls 2> /dev/null | grep -v attached)
    if [ ! -z "$detached_screens" ]; then
      echo "+-----------------------------------------------------------+"
      echo "| Detached tmux sessions are available:                     |"
      echo "$detached_screens"
      echo "+-----------------------------------------------------------+"
    fi
  fi
  export SHOWED_TMUX_MESSAGE="true"
fi

# If available, source private extensions stored in a different repo
if [[ -a ~/.private/zshrc ]]; then
    source ~/.private/zshrc
fi

if [[ -a ~/.zshrc-machine ]]; then
        source ~/.zshrc-machine
fi