mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-03-13 03:12:21 +01:00
This was added in 99d72ca, to work around warnings with `sudo -s`.
`sudo -s` seems to cause a lot of other issues anyway, where files get
owned by root etc.
I think it's better to be safe by default.
From zsh's man page:
For security reasons compinit also checks if the completion
system would use files not owned by root or by the cur‐ rent
user, or files in directories that are world- or group-writable
or that are not owned by root or by the cur‐ rent user. If
such files or directories are found, compinit will ask if the
completion system should really be used. To avoid these tests
and make all files found be used without asking, use the
option -u, and to make compinit silently ignore all
insecure files and directories use the option -i. This security
check is skipped entirely when the -C option is given.
92 lines
2.7 KiB
Bash
92 lines
2.7 KiB
Bash
# Check for updates on initial load...
|
|
if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then
|
|
env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh
|
|
fi
|
|
|
|
# Initializes Oh My Zsh
|
|
|
|
# add a function path
|
|
fpath=($ZSH/functions $ZSH/completions $fpath)
|
|
|
|
# Set ZSH_CUSTOM to the path where your custom config files
|
|
# and plugins exists, or else we will use the default custom/
|
|
if [[ -z "$ZSH_CUSTOM" ]]; then
|
|
ZSH_CUSTOM="$ZSH/custom"
|
|
fi
|
|
|
|
# Load all of the config files in ~/oh-my-zsh that end in .zsh
|
|
# TIP: Add files you don't want in git to .gitignore
|
|
for config_file ($ZSH/lib/*.zsh); do
|
|
custom_config_file="${ZSH_CUSTOM}/lib/${config_file:t}"
|
|
[ -f "${custom_config_file}" ] && config_file=${custom_config_file}
|
|
source $config_file
|
|
done
|
|
|
|
|
|
is_plugin() {
|
|
local base_dir=$1
|
|
local name=$2
|
|
test -f $base_dir/plugins/$name/$name.plugin.zsh \
|
|
|| test -f $base_dir/plugins/$name/_$name
|
|
}
|
|
# Add all defined plugins to fpath. This must be done
|
|
# before running compinit.
|
|
for plugin ($plugins); do
|
|
if is_plugin $ZSH_CUSTOM $plugin; then
|
|
fpath=($ZSH_CUSTOM/plugins/$plugin $fpath)
|
|
elif is_plugin $ZSH $plugin; then
|
|
fpath=($ZSH/plugins/$plugin $fpath)
|
|
fi
|
|
done
|
|
|
|
# Figure out the SHORT hostname
|
|
if [[ "$OSTYPE" = darwin* ]]; then
|
|
# OS X's $HOST changes with dhcp, etc. Use ComputerName if possible.
|
|
SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST=${HOST/.*/}
|
|
else
|
|
SHORT_HOST=${HOST/.*/}
|
|
fi
|
|
|
|
# Save the location of the current completion dump file.
|
|
if [ -z "$ZSH_COMPDUMP" ]; then
|
|
ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
|
|
fi
|
|
|
|
# Load and run compinit
|
|
autoload -U compinit
|
|
compinit -d "${ZSH_COMPDUMP}"
|
|
|
|
# Load all of the plugins that were defined in ~/.zshrc
|
|
for plugin ($plugins); do
|
|
if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then
|
|
source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh
|
|
elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
|
|
source $ZSH/plugins/$plugin/$plugin.plugin.zsh
|
|
fi
|
|
done
|
|
|
|
# Load all of your custom configurations from custom/
|
|
for config_file ($ZSH_CUSTOM/*.zsh(N)); do
|
|
source $config_file
|
|
done
|
|
unset config_file
|
|
|
|
# Load the theme
|
|
if [ "$ZSH_THEME" = "random" ]; then
|
|
themes=($ZSH/themes/*zsh-theme)
|
|
N=${#themes[@]}
|
|
((N=(RANDOM%N)+1))
|
|
RANDOM_THEME=${themes[$N]}
|
|
source "$RANDOM_THEME"
|
|
echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
|
|
else
|
|
if [ ! "$ZSH_THEME" = "" ]; then
|
|
if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
|
|
source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
|
|
elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then
|
|
source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme"
|
|
else
|
|
source "$ZSH/themes/$ZSH_THEME.zsh-theme"
|
|
fi
|
|
fi
|
|
fi
|