fix(vagrant-prompt): make vagrant_prompt_info generic for any state (#12782)

This commit is contained in:
Marc Cornellà
2024-10-27 17:31:38 +01:00
committed by GitHub
parent 68d189cb35
commit fa64758aea
2 changed files with 37 additions and 16 deletions

View File

@@ -1,16 +1,18 @@
function vagrant_prompt_info() {
local vm_states vm_state
if [[ -d .vagrant && -f Vagrantfile ]]; then
vm_states=(${(f)"$(vagrant status 2> /dev/null | sed -nE 's/^.*(saved|poweroff|running|not created) \([[:alnum:]_]+\)$/\1/p')"})
printf '%s' $ZSH_THEME_VAGRANT_PROMPT_PREFIX
for vm_state in $vm_states; do
case "$vm_state" in
saved) printf '%s' $ZSH_THEME_VAGRANT_PROMPT_SUSPENDED ;;
running) printf '%s' $ZSH_THEME_VAGRANT_PROMPT_RUNNING ;;
poweroff) printf '%s' $ZSH_THEME_VAGRANT_PROMPT_POWEROFF ;;
"not created") printf '%s' $ZSH_THEME_VAGRANT_PROMPT_NOT_CREATED ;;
esac
done
printf '%s' $ZSH_THEME_VAGRANT_PROMPT_SUFFIX
if [[ ! -d .vagrant || ! -f Vagrantfile ]]; then
return
fi
local vm_states vm_state
vm_states=(${(f)"$(vagrant status 2> /dev/null | sed -nE 's/^[^ ]* *([[:alnum:] ]*) \([[:alnum:]_]+\)$/\1/p')"})
printf '%s' $ZSH_THEME_VAGRANT_PROMPT_PREFIX
for vm_state in $vm_states; do
case "$vm_state" in
running) printf '%s' $ZSH_THEME_VAGRANT_PROMPT_RUNNING ;;
"not running"|poweroff) printf '%s' $ZSH_THEME_VAGRANT_PROMPT_POWEROFF ;;
paused|saved|suspended) printf '%s' $ZSH_THEME_VAGRANT_PROMPT_SUSPENDED ;;
"not created") printf '%s' $ZSH_THEME_VAGRANT_PROMPT_NOT_CREATED ;;
esac
done
printf '%s' $ZSH_THEME_VAGRANT_PROMPT_SUFFIX
}