0e12ebb42def5729f79b5f5d2703829faa6a9643

Author
Marc Cornellà <marc.cornella@live.com>
Committer
Marc Cornellà <marc.cornella@live.com>
Date

Message

init: use grep for zcompdump metadata check

Closes #8981

Diff

 1diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
 2index 435febc6d56ddc56f947fad6cf010cb3eaedd3b6..8b4c778d6bcd7177278bcb248178c71a1d4acfc9 100644
 3--- a/oh-my-zsh.sh
 4+++ b/oh-my-zsh.sh
 5@@ -62,13 +62,13 @@ if [ -z "$ZSH_COMPDUMP" ]; then
 6 fi
 7 
 8 # Construct zcompdump OMZ metadata
 9-zcompdump_metadata="\
10-#omz revision: $(builtin cd -q "$ZSH"; git rev-parse HEAD 2>/dev/null)
11-#omz fpath: $fpath\
12-"
13+zcompdump_revision="#omz revision: $(builtin cd -q "$ZSH"; git rev-parse HEAD 2>/dev/null)"
14+zcompdump_fpath="#omz fpath: $fpath"
15 
16 # Delete the zcompdump file if OMZ zcompdump metadata changed
17-if ! cmp -s <(command grep '^#omz' "$ZSH_COMPDUMP" 2>/dev/null) <(echo "$zcompdump_metadata"); then
18+if ! command grep -q -Fx "$zcompdump_revision" "$ZSH_COMPDUMP" 2>/dev/null \
19+   || ! command grep -q -Fx "$zcompdump_fpath" "$ZSH_COMPDUMP" 2>/dev/null; then
20+  echo zcompdump changed
21   command rm -f "$ZSH_COMPDUMP"
22   zcompdump_refresh=1
23 fi
24@@ -86,10 +86,14 @@ fi
25 
26 # Append zcompdump metadata if missing
27 if (( $zcompdump_refresh )); then
28-  echo "\n$zcompdump_metadata" | tee -a "$ZSH_COMPDUMP" &>/dev/null
29+  cat >>| "$ZSH_COMPDUMP" <<EOF
30+
31+$zcompdump_revision
32+$zcompdump_fpath
33+EOF
34 fi
35 
36-unset zcompdump_metadata zcompdump_refresh
37+unset zcompdump_revision zcompdump_fpath zcompdump_refresh
38 
39 
40 # Load all of the config files in ~/oh-my-zsh that end in .zsh