Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
7152a942
Unverified
Commit
7152a942
authored
Oct 04, 2021
by
Marc Cornellà
Committed by
GitHub
Oct 04, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(init): show error and process tree if OMZ is loaded from non-zsh shells (#10234)
parent
c6c36431
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
3 deletions
+35
-3
oh-my-zsh.sh
oh-my-zsh.sh
+35
-3
No files found.
oh-my-zsh.sh
View file @
7152a942
# Protect against non-zsh execution of Oh My Zsh (use POSIX syntax here)
# Protect against non-zsh execution of Oh My Zsh (use POSIX syntax here)
[
-n
"
$ZSH_VERSION
"
]
||
{
[
-n
"
$ZSH_VERSION
"
]
||
{
# ANSI (\033[<code>m): 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red
# ANSI formatting function (\033[<code>m)
printf
"
\0
33[1;31mERROR:
\0
33[22m Oh My Zsh can't be loaded from:
\0
33[1m
${
0
#-
}
\0
33[22m. "
>
&2
# 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow
printf
"You need to run
\0
33[1;4mzsh
\0
33[22;24m instead.
\0
33[0m
\n
"
>
&2
f
()
{
[
$#
-gt
0
]
||
return
IFS
=
";"
printf
"
\0
33[%sm"
$*
}
# If stdout is not a terminal ignore all formatting
[
-t
1
]
||
f
()
{
:
;
}
ptree
()
{
# Get process tree of the current process
pid
=
$$
;
pids
=
"
$pid
"
while
[
${
pid
-0
}
-ne
1
]
&&
ppid
=
$(
ps
-e
-o
pid,ppid |
awk
"
\$
1 ==
$pid
{ print
\$
2 }"
)
;
do
pids
=
"
$pids
$pid
"
;
pid
=
$ppid
done
# Show process tree
case
"
$(
uname
)
"
in
Linux
)
ps
-o
ppid,pid,command
-f
-p
$pids
2>/dev/null
;;
Darwin|
*
)
ps
-o
ppid,pid,command
-p
$pids
2>/dev/null
;;
esac
# If ps command failed, try Busybox ps
[
$?
-eq
0
]
||
ps
-o
ppid,pid,comm |
awk
"NR == 1 || index(
\"
$pids
\"
,
\$
2) != 0"
}
{
shell
=
$(
ps
-o
pid,comm |
awk
"
\$
1 ==
$$
{ print
\$
2 }"
)
printf
"
$(
f 1 31
)
Error:
$(
f 22
)
Oh My Zsh can't be loaded from:
$(
f 1
)${
shell
}$(
f 22
)
. "
printf
"You need to run
$(
f 1
)
zsh
$(
f 22
)
instead.
$(
f 0
)
\n
"
printf
"
$(
f 33
)
Here's the process tree:
$(
f 22
)
\n\n
"
ptree
printf
"
$(
f 0
)
\n
"
}
>
&2
return
1
return
1
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment