The existing code in runcoms/zlogin results in `$?` being equal to `1` when starting a login shell if stderr is not a TTY. For example: zsh -l 2>/dev/null When using a theme that displays error/success status of the last command, the first prompt will show an error. This commit fixes it so that error code is zero after sourcing zlogin (unless something unexpected and bad happens).
26 lines
633 B
Bash
26 lines
633 B
Bash
#
|
|
# Executes commands at login post-zshrc.
|
|
#
|
|
# Authors:
|
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
#
|
|
|
|
# Execute code that does not affect the current session in the background.
|
|
{
|
|
# Compile the completion dump to increase startup speed.
|
|
zcompdump="${ZDOTDIR:-$HOME}/.zcompdump"
|
|
if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then
|
|
zcompile "$zcompdump"
|
|
fi
|
|
} &!
|
|
|
|
# Execute code only if STDERR is bound to a TTY.
|
|
if [[ -o INTERACTIVE && -t 2 ]]; then
|
|
|
|
# Print a random, hopefully interesting, adage.
|
|
if (( $+commands[fortune] )); then
|
|
fortune -s
|
|
print
|
|
fi
|
|
|
|
fi >&2
|