Browse Source

fix(installer): don't use `$ZDOTDIR` in zshrc file if same as `$HOME`

Fixes #11471
Marc Cornellà 1 year ago
parent
commit
5c9a3d2f4f
1 changed files with 5 additions and 3 deletions
  1. 5 3
      tools/install.sh

+ 5 - 3
tools/install.sh

@@ -61,9 +61,9 @@ custom_zsh=${ZSH:+yes}
 zdot="${ZDOTDIR:-$HOME}"
 
 # Default value for $ZSH
-# a) if $ZDOTDIR is supplied: $ZDOTDIR/ohmyzsh
+# a) if $ZDOTDIR is supplied and not $HOME: $ZDOTDIR/ohmyzsh
 # b) otherwise, $HOME/.oh-my-zsh
-ZSH="${ZSH:-${ZDOTDIR:+$ZDOTDIR/ohmyzsh}}"
+[ "$ZDOTDIR" = "$HOME" ] || ZSH="${ZSH:-${ZDOTDIR:+$ZDOTDIR/ohmyzsh}}"
 ZSH="${ZSH:-$HOME/.oh-my-zsh}"
 
 # Default settings
@@ -350,7 +350,9 @@ setup_zshrc() {
 
   # Modify $ZSH variable in .zshrc directory to use the literal $ZDOTDIR or $HOME
   omz="$ZSH"
-  [ -z "$ZDOTDIR" ] || omz=$(echo "$omz" | sed "s|^$ZDOTDIR/|\$ZDOTDIR/|")
+  if [ -n "$ZDOTDIR" ] && [ "$ZDOTDIR" != "$HOME" ]; then
+    omz=$(echo "$omz" | sed "s|^$ZDOTDIR/|\$ZDOTDIR/|")
+  fi
   omz=$(echo "$omz" | sed "s|^$HOME/|\$HOME/|")
 
   sed "s|^export ZSH=.*$|export ZSH=\"${omz}\"|" "$ZSH/templates/zshrc.zsh-template" > "$zdot/.zshrc-omztemp"