mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	This avoids spawning additional processes as $PWD **always** contains the current working directory.
		
			
				
	
	
		
			86 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# Restart a rack app running under pow
 | 
						||
# http://pow.cx/
 | 
						||
#
 | 
						||
# Adds a kapow command that will restart an app
 | 
						||
#
 | 
						||
#   $ kapow myapp
 | 
						||
#
 | 
						||
# Supports command completion.
 | 
						||
#
 | 
						||
# If you are not already using completion you might need to enable it with
 | 
						||
#
 | 
						||
#    autoload -U compinit compinit
 | 
						||
#
 | 
						||
# Changes:
 | 
						||
#
 | 
						||
# Defaults to the current application, and will walk up the tree to find
 | 
						||
# a config.ru file and restart the corresponding app
 | 
						||
#
 | 
						||
# Will Detect if a app does not exist in pow and print a (slightly) helpful
 | 
						||
# error message
 | 
						||
 | 
						||
rack_root(){
 | 
						||
  setopt chaselinks
 | 
						||
  local orgdir="$PWD"
 | 
						||
  local basedir="$PWD"
 | 
						||
 | 
						||
  while [[ $basedir != '/' ]]; do
 | 
						||
    test -e "$basedir/config.ru" && break
 | 
						||
    builtin cd ".." 2>/dev/null
 | 
						||
    basedir="$PWD"
 | 
						||
  done
 | 
						||
 | 
						||
  builtin cd "$orgdir" 2>/dev/null
 | 
						||
  [[ ${basedir} == "/" ]] && return 1
 | 
						||
  echo $basedir
 | 
						||
}
 | 
						||
 | 
						||
rack_root_detect(){
 | 
						||
  basedir=$(rack_root)
 | 
						||
  echo `basename $basedir | sed -E "s/.(com|net|org)//"`
 | 
						||
}
 | 
						||
 | 
						||
kapow(){
 | 
						||
  local vhost=$1
 | 
						||
  [ ! -n "$vhost" ] && vhost=$(rack_root_detect)
 | 
						||
  if [ ! -h ~/.pow/$vhost ]
 | 
						||
  then
 | 
						||
    echo "pow: This domain isn’t set up yet. Symlink your application to ${vhost} first."
 | 
						||
    return 1
 | 
						||
  fi
 | 
						||
 | 
						||
  [ ! -d ~/.pow/${vhost}/tmp ] && mkdir -p ~/.pow/$vhost/tmp
 | 
						||
  touch ~/.pow/$vhost/tmp/restart.txt;
 | 
						||
  [ $? -eq 0 ] &&  echo "pow: restarting $vhost.dev"
 | 
						||
}
 | 
						||
compctl -W ~/.pow -/ kapow
 | 
						||
 | 
						||
powit(){
 | 
						||
  local basedir="$PWD"
 | 
						||
  local vhost=$1
 | 
						||
  [ ! -n "$vhost" ] && vhost=$(rack_root_detect)
 | 
						||
  if [ ! -h ~/.pow/$vhost ]
 | 
						||
  then
 | 
						||
    echo "pow: Symlinking your app with pow. ${vhost}"
 | 
						||
    [ ! -d ~/.pow/${vhost} ] && ln -s "$basedir" ~/.pow/$vhost
 | 
						||
    return 1
 | 
						||
  fi
 | 
						||
}
 | 
						||
 | 
						||
powed(){
 | 
						||
  local basedir="$(rack_root)"
 | 
						||
  find ~/.pow/ -type l -lname "*$basedir*" -exec basename {}'.dev' \;
 | 
						||
}
 | 
						||
 | 
						||
# Restart pow process
 | 
						||
# taken from http://www.matthewratzloff.com/blog/2011/12/23/restarting-pow-when-dns-stops-responding
 | 
						||
repow(){
 | 
						||
  lsof | grep 20560 | awk '{print $2}' | xargs kill -9
 | 
						||
  launchctl unload ~/Library/LaunchAgents/cx.pow.powd.plist
 | 
						||
  launchctl load ~/Library/LaunchAgents/cx.pow.powd.plist
 | 
						||
  echo "restarted pow"
 | 
						||
}
 | 
						||
 | 
						||
# View the standard out (puts) from any pow app
 | 
						||
alias kaput="tail -f ~/Library/Logs/Pow/apps/*"
 |