mirror of
				https://github.com/oh-my-fish/theme-bobthefish.git
				synced 2025-06-13 13:03:54 +00:00 
			
		
		
		
	Add rudimentary VMWare vagrant support.
Drive-by: simplify existing virtualbox support a bit.
This commit is contained in:
		
							parent
							
								
									1f13fd0888
								
							
						
					
					
						commit
						ad36c7ada5
					
				@ -87,7 +87,7 @@ set -g default_user your_normal_user
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
**Prompt options**
 | 
					**Prompt options**
 | 
				
			||||||
- `theme_display_ruby`. Use `no` to completely hide all information about Ruby version. By default Ruby version displayed if there is the difference from default settings.
 | 
					- `theme_display_ruby`. Use `no` to completely hide all information about Ruby version. By default Ruby version displayed if there is the difference from default settings.
 | 
				
			||||||
- `theme_display_vagrant`. This feature is disabled by default, use `yes` to display Vagrant status in your prompt. Please note, only VirtualBox provider is supported.
 | 
					- `theme_display_vagrant`. This feature is disabled by default, use `yes` to display Vagrant status in your prompt. Please note that only the VirtualBox and VMWare providers are supported.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[fish]:       https://github.com/fish-shell/fish-shell
 | 
					[fish]:       https://github.com/fish-shell/fish-shell
 | 
				
			||||||
[screenshot]: http://i.0x7f.us/bobthefish.png
 | 
					[screenshot]: http://i.0x7f.us/bobthefish.png
 | 
				
			||||||
 | 
				
			|||||||
@ -190,37 +190,61 @@ end
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function __bobthefish_prompt_vagrant -S -d 'Display Vagrant status'
 | 
					function __bobthefish_prompt_vagrant -S -d 'Display Vagrant status'
 | 
				
			||||||
  [ "$theme_display_vagrant" != 'yes' ]; and return
 | 
					  [ "$theme_display_vagrant" != 'yes' ]; and return
 | 
				
			||||||
  which VBoxManage >/dev/null 2>&1; and set -l __vbox_installed yes
 | 
					  if [ -f Vagrantfile ]
 | 
				
			||||||
  if [ -f Vagrantfile -a "$__vbox_installed" = 'yes' ]
 | 
					    if type -q VBoxManage
 | 
				
			||||||
    # Get machine UUIDs
 | 
					      __bobthefish_prompt_vagrant_vbox
 | 
				
			||||||
    set -e __vagrant_ids
 | 
					    else if type -q vmrun
 | 
				
			||||||
    set -e __vagrant_statuses
 | 
					      __bobthefish_prompt_vagrant_vmware
 | 
				
			||||||
    for m in .vagrant/machines/**/id
 | 
					 | 
				
			||||||
      set -l __machine_id (cat $m)
 | 
					 | 
				
			||||||
      set __vagrant_ids $__vagrant_ids $__machine_id
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    for i in $__vagrant_ids
 | 
					 | 
				
			||||||
      set -l __vm_status (VBoxManage showvminfo --machinereadable $i 2>/dev/null | grep 'VMState=' | tr -d '"' | cut -d '=' -f 2)
 | 
					 | 
				
			||||||
      set __vagrant_statuses "$__vagrant_statuses<$__vm_status>"
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    # Transform statuses to glyphs
 | 
					 | 
				
			||||||
    set __vagrant_statuses ( echo -n $__vagrant_statuses | sed \
 | 
					 | 
				
			||||||
      -e "s#<running>#$__bobthefish_vagrant_running_glyph#g" \
 | 
					 | 
				
			||||||
      -e "s#<poweroff>#$__bobthefish_vagrant_poweroff_glyph#g" \
 | 
					 | 
				
			||||||
      -e "s#<aborted>#$__bobthefish_vagrant_aborted_glyph#g" \
 | 
					 | 
				
			||||||
      -e "s#<saved>#$__bobthefish_vagrant_saved_glyph#g" \
 | 
					 | 
				
			||||||
      -e "s#<stopping>#$__bobthefish_vagrant_stopping_glyph#g" \
 | 
					 | 
				
			||||||
      -e "s#<>#$__bobthefish_vagrant_unknown_glyph#g"
 | 
					 | 
				
			||||||
      )
 | 
					 | 
				
			||||||
    # Display status if any status
 | 
					 | 
				
			||||||
    if [ "$__vagrant_statuses" != '' ]
 | 
					 | 
				
			||||||
      __bobthefish_start_segment $__bobthefish_vagrant fff --bold
 | 
					 | 
				
			||||||
      echo -n -s "$__vagrant_statuses "
 | 
					 | 
				
			||||||
      set_color normal
 | 
					 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function __bobthefish_vagrant_vmware_ids -S -d 'List Vagrant machine ids'
 | 
				
			||||||
 | 
					  cat .vagrant/machines/**/id
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function __bobthefish_prompt_vagrant_vbox -S -d 'Display VirtualBox Vagrant status'
 | 
				
			||||||
 | 
					  set -l vagrant_status
 | 
				
			||||||
 | 
					  for id in __bobthefish_vagrant_ids
 | 
				
			||||||
 | 
					    set -l vm_status (VBoxManage showvminfo --machinereadable $id 2>/dev/null | grep 'VMState=' | tr -d '"' | cut -d '=' -f 2)
 | 
				
			||||||
 | 
					    switch "$vm_status"
 | 
				
			||||||
 | 
					      case 'running'
 | 
				
			||||||
 | 
					        set vagrant_status "$vagrant_status$__bobthefish_vagrant_running_glyph"
 | 
				
			||||||
 | 
					      case 'poweroff'
 | 
				
			||||||
 | 
					        set vagrant_status "$vagrant_status$__bobthefish_vagrant_poweroff_glyph"
 | 
				
			||||||
 | 
					      case 'aborted'
 | 
				
			||||||
 | 
					        set vagrant_status "$vagrant_status$__bobthefish_vagrant_aborted_glyph"
 | 
				
			||||||
 | 
					      case 'saved'
 | 
				
			||||||
 | 
					        set vagrant_status "$vagrant_status$__bobthefish_vagrant_saved_glyph"
 | 
				
			||||||
 | 
					      case 'stopping'
 | 
				
			||||||
 | 
					        set vagrant_status "$vagrant_status$__bobthefish_vagrant_stopping_glyph"
 | 
				
			||||||
 | 
					      case ''
 | 
				
			||||||
 | 
					        set vagrant_status "$vagrant_status$__bobthefish_vagrant_unknown_glyph"
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					  [ -z "$vagrant_status"]; and return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  __bobthefish_start_segment $__bobthefish_vagrant fff --bold
 | 
				
			||||||
 | 
					  echo -n -s "$vagrant_status "
 | 
				
			||||||
 | 
					  set_color normal
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function __bobthefish_prompt_vagrant_vmware -S -d 'Display VMWare Vagrant status'
 | 
				
			||||||
 | 
					  set -l vagrant_status
 | 
				
			||||||
 | 
					  for id in (__bobthefish_vagrant_ids)
 | 
				
			||||||
 | 
					    if [ (pgrep -f "$id") ]
 | 
				
			||||||
 | 
					      set vagrant_status "$vagrant_status$__bobthefish_vagrant_running_glyph"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      set vagrant_status "$vagrant_status$__bobthefish_vagrant_poweroff_glyph"
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					  [ -z "$vagrant_status" ]; and return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  __bobthefish_start_segment $__bobthefish_vagrant fff --bold
 | 
				
			||||||
 | 
					  echo -n -s "$vagrant_status "
 | 
				
			||||||
 | 
					  set_color normal
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function __bobthefish_prompt_status -S -a last_status -d 'Display symbols for a non zero exit status, root and background jobs'
 | 
					function __bobthefish_prompt_status -S -a last_status -d 'Display symbols for a non zero exit status, root and background jobs'
 | 
				
			||||||
  set -l nonzero
 | 
					  set -l nonzero
 | 
				
			||||||
  set -l superuser
 | 
					  set -l superuser
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user