forked from ohmyzsh/ohmyzsh
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request ohmyzsh#850 from johnantoni/pow-fix
take in chris sexton's changes to the pow plugin
- Loading branch information
Showing
1 changed file
with
63 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,66 @@ | ||
# Thanks to Christopher Sexton | ||
# https://gist.github.com/965032 | ||
function kapow { | ||
touch ~/.pow/$1/tmp/restart.txt | ||
if [ $? -eq 0 ]; then | ||
echo "$fg[yellow]Pow restarting $1...$reset_color" | ||
fi | ||
# 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_detect(){ | ||
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 `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 | ||
} | ||
|
||
# View the standard out (puts) from any pow app | ||
alias kaput="tail -f ~/Library/Logs/Pow/apps/*" |