You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.0 KiB
85 lines
2.0 KiB
# 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 https://www.matthewratzloff.com |
|
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/*"
|
|
|