install.fairie/docs/scripts/after/run_onchange_after_95-bootstrap-zsh-plugins.sh.tmpl.md
2023-11-05 01:46:18 +00:00

45 lines
1.9 KiB
Markdown

---
title: ZSH Pre-Initialization
description: Ensures ZSH is pre-initialized by invoking ZSH and allowing it to perform "first-run" tasks
sidebar_label: 95 ZSH Pre-Initialization
slug: /scripts/after/run_onchange_after_95-bootstrap-zsh-plugins.sh.tmpl
githubLocation: https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoiscripts/universal/run_onchange_after_95-bootstrap-zsh-plugins.sh.tmpl
scriptLocation: https://github.com/megabyte-labs/install.doctor/raw/master/home/.chezmoiscripts/universal/run_onchange_after_95-bootstrap-zsh-plugins.sh.tmpl
repoLocation: home/.chezmoiscripts/universal/run_onchange_after_95-bootstrap-zsh-plugins.sh.tmpl
---
# ZSH Pre-Initialization
Ensures ZSH is pre-initialized by invoking ZSH and allowing it to perform "first-run" tasks
## Overview
This script ensures that the first time you open a ZSH terminal session everything is loaded as fast as possible.
It does this by invoking ZSH in the background during the provisioning process so that "first-run" tasks such
as cache-building are handled ahead of time.
## Source Code
```
{{- if (eq .host.headless true) }}
#!/usr/bin/env bash
# @file ZSH Pre-Initialization
# @brief Ensures ZSH is pre-initialized by invoking ZSH and allowing it to perform "first-run" tasks
# @description
# This script ensures that the first time you open a ZSH terminal session everything is loaded as fast as possible.
# It does this by invoking ZSH in the background during the provisioning process so that "first-run" tasks such
# as cache-building are handled ahead of time.
# .zshrc hash: {{ include (joinPath .chezmoi.homeDir ".zshrc") | sha256sum }}
{{ includeTemplate "universal/profile" }}
{{ includeTemplate "universal/logg" }}
### Initialize ZSH so plugin bootstrap process is done ahead of time
if command -v zsh > /dev/null; then
logg info 'Bootstrapping ZSH by running exec zsh'
exec zsh
fi
{{ end -}}
```