1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-12-05 09:43:38 +08:00
ohmyzsh/plugins/pow/pow.plugin.zsh

86 lines
2.1 KiB
Bash
Raw Normal View History

# 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
2012-03-09 21:53:09 +08:00
#
# autoload -U compinit compinit
#
# Changes:
#
2012-03-09 21:53:09 +08:00
# Defaults to the current application, and will walk up the tree to find
# a config.ru file and restart the corresponding app
#
2012-03-09 21:53:09 +08:00
# Will Detect if a app does not exist in pow and print a (slightly) helpful
# error message
2012-03-09 21:53:09 +08:00
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
2012-03-09 21:53:09 +08:00
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 isnt 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 ]
2012-03-09 21:53:09 +08:00
then
echo "pow: Symlinking your app with pow. ${vhost}"
[ ! -d ~/.pow/${vhost} ] && ln -s "$basedir" ~/.pow/$vhost
return 1
fi
}
2012-03-09 21:53:09 +08:00
powed(){
local basedir="$(rack_root)"
2012-03-09 21:53:09 +08:00
find ~/.pow/ -type l -lname "*$basedir*" -exec basename {}'.dev' \;
}
2012-04-05 00:54:31 +08:00
# 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/*"