|
|
|
|
@ -16,22 +16,17 @@ |
|
|
|
|
# ZSH_THEME_VAGRANT_PROMPT_NOT_CREATED="%{$fg_no_bold[white]%}○" |
|
|
|
|
|
|
|
|
|
function vagrant_prompt_info() { |
|
|
|
|
test -d .vagrant && test -f Vagrantfile |
|
|
|
|
if [[ "$?" == "0" ]]; then |
|
|
|
|
statuses=$(vagrant status 2> /dev/null | grep -P "\w+\s+[\w\s]+\s\(\w+\)") |
|
|
|
|
statuses=("${(f)statuses}") |
|
|
|
|
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_details in $statuses; do |
|
|
|
|
vm_state=$(echo $vm_details | grep -o -E "saved|poweroff|not created|running") |
|
|
|
|
if [[ "$vm_state" == "running" ]]; then |
|
|
|
|
printf '%s' $ZSH_THEME_VAGRANT_PROMPT_RUNNING |
|
|
|
|
elif [[ "$vm_state" == "saved" ]]; then |
|
|
|
|
printf '%s' $ZSH_THEME_VAGRANT_PROMPT_SUSPENDED |
|
|
|
|
elif [[ "$vm_state" == "not created" ]]; then |
|
|
|
|
printf '%s' $ZSH_THEME_VAGRANT_PROMPT_NOT_CREATED |
|
|
|
|
elif [[ "$vm_state" == "poweroff" ]]; then |
|
|
|
|
printf '%s' $ZSH_THEME_VAGRANT_PROMPT_POWEROFF |
|
|
|
|
fi |
|
|
|
|
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 |
|
|
|
|
fi |
|
|
|
|
|