1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-11-22 15:36:24 +08:00

fix(init): exit gracefully if on non-zsh emulation mode (#11874)

Fixes #11686
This commit is contained in:
Marc Cornellà 2023-09-04 19:32:38 +02:00 committed by GitHub
parent 1abc1d998a
commit 30f0d59188
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,14 +1,14 @@
# Protect against non-zsh execution of Oh My Zsh (use POSIX syntax here) # ANSI formatting function (\033[<code>m)
[ -n "$ZSH_VERSION" ] || { # 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow
# ANSI formatting function (\033[<code>m) omz_f() {
# 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow
omz_f() {
[ $# -gt 0 ] || return [ $# -gt 0 ] || return
IFS=";" printf "\033[%sm" $* IFS=";" printf "\033[%sm" $*
} }
# If stdout is not a terminal ignore all formatting # If stdout is not a terminal ignore all formatting
[ -t 1 ] || omz_f() { :; } [ -t 1 ] || omz_f() { :; }
# Protect against non-zsh execution of Oh My Zsh (use POSIX syntax here)
[ -n "$ZSH_VERSION" ] || {
omz_ptree() { omz_ptree() {
# Get process tree of the current process # Get process tree of the current process
pid=$$; pids="$pid" pid=$$; pids="$pid"
@ -38,6 +38,15 @@
return 1 return 1
} }
# Check if in emulation mode, if so early return
# https://github.com/ohmyzsh/ohmyzsh/issues/11686
[[ "$(emulate)" = zsh ]] || {
printf "$(omz_f 1 31)Error:$(omz_f 22) Oh My Zsh can't be loaded in \`$(emulate)\` emulation mode.$(omz_f 0)\n" >&2
return 1
}
unset -f omz_f
# If ZSH is not defined, use the current script's directory. # If ZSH is not defined, use the current script's directory.
[[ -z "$ZSH" ]] && export ZSH="${${(%):-%x}:a:h}" [[ -z "$ZSH" ]] && export ZSH="${${(%):-%x}:a:h}"