From 680298e920069b313650c1e1e413197c251c9cde Mon Sep 17 00:00:00 2001 From: David Chin Date: Mon, 1 Sep 2025 15:02:29 -0400 Subject: [PATCH] feat(spackenv): Adding Spackenv plugin (#13191) * Add spackenv plugin to handle Spack environment * Use ":t" instead of 'basename' --- plugins/spackenv/README.md | 17 +++++++++++++++++ plugins/spackenv/spackenv.plugin.zsh | 5 +++++ 2 files changed, 22 insertions(+) create mode 100644 plugins/spackenv/README.md create mode 100644 plugins/spackenv/spackenv.plugin.zsh diff --git a/plugins/spackenv/README.md b/plugins/spackenv/README.md new file mode 100644 index 000000000..371515839 --- /dev/null +++ b/plugins/spackenv/README.md @@ -0,0 +1,17 @@ +# spackenv + +Based on the virtualenv plugin. + +The plugin displays information of the created Spack environment and allows background theming. + +To use it, add `spackenv` to the plugins array of your zshrc file: +``` +plugins=(... spackenv) +``` + +The plugin creates a `spackenv_prompt_info` function that you can use in your theme, which displays +the basename of the current `$SPACK_ENV`. It uses two variables to control how that is shown: + +- `ZSH_THEME_SPACKENV_PREFIX`: sets the prefix of the SPACK_ENV. Defaults to `[`. + +- `ZSH_THEME_SPACKENV_SUFFIX`: sets the suffix of the SPACK_ENV. Defaults to `]`. diff --git a/plugins/spackenv/spackenv.plugin.zsh b/plugins/spackenv/spackenv.plugin.zsh new file mode 100644 index 000000000..f626f4fc6 --- /dev/null +++ b/plugins/spackenv/spackenv.plugin.zsh @@ -0,0 +1,5 @@ +function spackenv_prompt_info(){ + [[ -n ${SPACK_ENV} ]] || return + export SPACK_ENV_PROMPT=${SPACK_ENV:t} + echo "${ZSH_THEME_SPACKENV_PREFIX=(}${SPACK_ENV:t:gs/%/%%}${ZSH_THEME_SPACKENV_SUFFIX=)}" +}