Ensure Prezto submodule is initialized on clone/install

install.sh: use --recurse-submodules on the initial clone, and always
run 'git submodule update --init --recursive' before rake install so a
fresh checkout doesn't leave zsh/prezto empty.

README: document --recurse-submodules for manual clones; mention the
recovery command for existing shallow clones.

Fixes: bad math expression errors and 'no such file or directory:
~/.zprezto/runcoms/zshrc' on fresh shell startup when the Prezto
submodule hadn't been initialized.
This commit is contained in:
2026-04-21 08:06:07 -07:00
parent e455702f01
commit 1e39d19ab2
2 changed files with 16 additions and 5 deletions

View File

@@ -18,10 +18,15 @@ curl -fsSL https://gitea.dlw.la/dissimulo/drunkendotfiles/raw/branch/drunkendotf
Or clone first: Or clone first:
```sh ```sh
git clone https://gitea.dlw.la/dissimulo/drunkendotfiles.git ~/.yadr git clone --recurse-submodules https://gitea.dlw.la/dissimulo/drunkendotfiles.git ~/.yadr
~/.yadr/install.sh ~/.yadr/install.sh
``` ```
`--recurse-submodules` matters: Prezto lives in `zsh/prezto` as a git
submodule. Without it, `~/.zshrc` fails on startup with a missing
`~/.zprezto/runcoms/zshrc`. (If you already cloned without it,
`cd ~/.yadr && git submodule update --init --recursive` catches you up.)
The installer: The installer:
1. Clones this repo to `~/.yadr` 1. Clones this repo to `~/.yadr`
@@ -38,12 +43,12 @@ Two things can be refreshed independently.
### Pull new drunkendotfiles changes ### Pull new drunkendotfiles changes
```sh ```sh
cd ~/.yadr && git pull cd ~/.yadr && git pull --recurse-submodules
``` ```
That gets you any new config changes, tmux tweaks, helper scripts, etc. That gets you any new config changes, tmux tweaks, helper scripts, etc.
pushed to this repo. Vim plugins and prezto modules are *not* touched — see pushed to this repo, plus any bumps to the Prezto submodule pointer.
below. Vim plugins are *not* touched — see below.
### Refresh YADR plugins ### Refresh YADR plugins

View File

@@ -62,11 +62,17 @@ elif [ -d "$YADR_DIR" ]; then
exit 1 exit 1
else else
log "Cloning drunkendotfiles" log "Cloning drunkendotfiles"
git clone --depth=1 "$REPO_URL" "$YADR_DIR" git clone --recurse-submodules "$REPO_URL" "$YADR_DIR"
fi fi
cd "$YADR_DIR" cd "$YADR_DIR"
# 1a. Ensure submodules are initialized (Prezto lives in zsh/prezto as a
# submodule — without it, ~/.zshrc fails with "no such file or directory:
# ~/.zprezto/runcoms/zshrc"). Safe to run on fresh and existing clones alike.
log "Ensuring submodules are initialized"
git submodule update --init --recursive
# 2. Run YADR's native install (Vim plugins, prezto, etc.) # 2. Run YADR's native install (Vim plugins, prezto, etc.)
if have rake; then if have rake; then
log "Running YADR rake install" log "Running YADR rake install"