diff options
author | Alberto Re <alberto.re@gmail.com> | 2018-07-01 20:16:08 +0200 |
---|---|---|
committer | Marc Cornellà <marc.cornella@live.com> | 2018-07-01 20:16:08 +0200 |
commit | 29a2394c8f88efe04a61460a9a171228c39b1de0 (patch) | |
tree | 5f50b5468f236b0a617af34b839254dc63092738 /plugins/vagrant-prompt/vagrant-prompt.plugin.zsh | |
parent | 78e7ec2186201a941f47d2f1f7a986bae3828e59 (diff) | |
download | zsh-29a2394c8f88efe04a61460a9a171228c39b1de0.tar.gz zsh-29a2394c8f88efe04a61460a9a171228c39b1de0.tar.bz2 zsh-29a2394c8f88efe04a61460a9a171228c39b1de0.zip |
Adds `vagrant_prompt_info` function to your shell (#4081)
Diffstat (limited to 'plugins/vagrant-prompt/vagrant-prompt.plugin.zsh')
-rw-r--r-- | plugins/vagrant-prompt/vagrant-prompt.plugin.zsh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/plugins/vagrant-prompt/vagrant-prompt.plugin.zsh b/plugins/vagrant-prompt/vagrant-prompt.plugin.zsh new file mode 100644 index 000000000..28bf31f91 --- /dev/null +++ b/plugins/vagrant-prompt/vagrant-prompt.plugin.zsh @@ -0,0 +1,38 @@ +# vim:ft=zsh ts=2 sw=2 sts=2 +# +# To display Vagrant infos on your prompt add the vagrant_prompt_info to the +# $PROMPT variable in your theme. Example: +# +# PROMPT='%{$fg[$NCOLOR]%}%B%n%b%{$reset_color%}:%{$fg[blue]%}%B%c/%b%{$reset_color%} $(vagrant_prompt_info)$(svn_prompt_info)$(git_prompt_info)%(!.#.$) ' +# +# `vagrant_prompt_info` makes use of some custom variables. This is an example +# definition: +# +# ZSH_THEME_VAGRANT_PROMPT_PREFIX="%{$fg_bold[blue]%}[" +# ZSH_THEME_VAGRANT_PROMPT_SUFFIX="%{$fg_bold[blue]%}]%{$reset_color%} " +# ZSH_THEME_VAGRANT_PROMPT_RUNNING="%{$fg_no_bold[green]%}●" +# ZSH_THEME_VAGRANT_PROMPT_POWEROFF="%{$fg_no_bold[red]%}●" +# ZSH_THEME_VAGRANT_PROMPT_SUSPENDED="%{$fg_no_bold[yellow]%}●" +# 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}") + 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 + done + printf '%s' $ZSH_THEME_VAGRANT_PROMPT_SUFFIX + fi +} |