mirror of
https://github.com/robbyrussell/oh-my-zsh.git
synced 2026-09-28 05:56:07 +02:00
Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
65d305ad06 | ||
|
|
fe25122da0 | ||
|
|
b37d4878ed |
+17
-1
@@ -100,7 +100,23 @@ done
|
||||
# Figure out the SHORT hostname
|
||||
if [[ "$OSTYPE" = darwin* ]]; then
|
||||
# macOS's $HOST changes with dhcp, etc. Use LocalHostName if possible.
|
||||
SHORT_HOST=$(scutil --get LocalHostName 2>/dev/null) || SHORT_HOST="${HOST/.*/}"
|
||||
# scutil costs a fork on every start, so remember its answer for a day
|
||||
# (like lib/grep.zsh) and re-check sooner if $HOST changes.
|
||||
__omz_host_cache="$ZSH_CACHE_DIR/localhostname"
|
||||
__omz_host_cached=("$__omz_host_cache"(Nm-1))
|
||||
if [[ -n "$__omz_host_cached" ]]; then
|
||||
{ read -r __omz_host_key && read -r SHORT_HOST } < "$__omz_host_cache"
|
||||
fi
|
||||
if [[ "$__omz_host_key" != "$HOST" || -z "$SHORT_HOST" ]]; then
|
||||
# only cache what scutil actually answered, so a transient failure
|
||||
# doesn't pin the fallback name for a day
|
||||
if SHORT_HOST=$(scutil --get LocalHostName 2>/dev/null) && [[ -n "$SHORT_HOST" ]]; then
|
||||
[[ ! -w "$ZSH_CACHE_DIR" ]] || print -rl -- "$HOST" "$SHORT_HOST" >| "$__omz_host_cache"
|
||||
else
|
||||
SHORT_HOST="${HOST/.*/}"
|
||||
fi
|
||||
fi
|
||||
unset __omz_host_cache __omz_host_cached __omz_host_key
|
||||
else
|
||||
SHORT_HOST="${HOST/.*/}"
|
||||
fi
|
||||
|
||||
@@ -1,25 +1,6 @@
|
||||
# Git version checking
|
||||
autoload -Uz is-at-least
|
||||
# Running `git version` forks on every startup, so cache the result for a day
|
||||
# in $ZSH_CACHE_DIR, keyed on the git command path, mtime, and exec path.
|
||||
() {
|
||||
local cache="$ZSH_CACHE_DIR/git-version" key exec_path
|
||||
local -a stat lines
|
||||
zmodload -F zsh/stat b:zstat
|
||||
zstat -A stat +mtime -- "$commands[git]" 2>/dev/null
|
||||
exec_path="$(git --exec-path 2>/dev/null)"
|
||||
key="$commands[git] $stat[1] $exec_path"
|
||||
|
||||
lines=("$cache"(Nm-1))
|
||||
(( $#lines )) && lines=("${(@f)$(<"$cache")}")
|
||||
if [[ "$lines[1]" = "$key" ]]; then
|
||||
git_version="$lines[2]"
|
||||
return
|
||||
fi
|
||||
|
||||
git_version="${${(As: :)$(git version 2>/dev/null)}[3]}"
|
||||
[[ ! -w "$ZSH_CACHE_DIR" ]] || print -rl -- "$key" "$git_version" >| "$cache"
|
||||
}
|
||||
|
||||
#
|
||||
# Functions Current
|
||||
|
||||
Reference in New Issue
Block a user