diff options
author | John Antoni Griffiths <john@johnantoni.com> | 2012-01-18 12:58:13 -0500 |
---|---|---|
committer | John Antoni Griffiths <john@johnantoni.com> | 2012-01-18 12:58:13 -0500 |
commit | c1a04eb61fcdd740bef52cd9da75fd72aeac3cf4 (patch) | |
tree | c9da16c94cd23c70ce2de006e7b2125a2c996799 /plugins/pow | |
parent | 741f6747e418229deec62ae2d19c776f6494e219 (diff) | |
download | zsh-c1a04eb61fcdd740bef52cd9da75fd72aeac3cf4.tar.gz zsh-c1a04eb61fcdd740bef52cd9da75fd72aeac3cf4.tar.bz2 zsh-c1a04eb61fcdd740bef52cd9da75fd72aeac3cf4.zip |
take in csexton's changes
https://gist.github.com/1019777/70dbb46db9bd5b346faf543a9dd4edac4782adda
Diffstat (limited to 'plugins/pow')
-rw-r--r-- | plugins/pow/pow.plugin.zsh | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/plugins/pow/pow.plugin.zsh b/plugins/pow/pow.plugin.zsh index da94b657b..08e5cf62f 100644 --- a/plugins/pow/pow.plugin.zsh +++ b/plugins/pow/pow.plugin.zsh @@ -4,7 +4,6 @@ # Adds a kapow command that will restart an app # # $ kapow myapp -# $ kapow # defaults to current directory # # Supports command completion. # @@ -12,14 +11,40 @@ # # autoload -U compinit compinit # -# Thanks also to Christopher Sexton -# https://gist.github.com/965032 +# Changes: # -function kapow { - FOLDERNAME=$1 - if [ -z "$FOLDERNAME" ]; then; FOLDERNAME=${PWD##*/}; fi - touch ~/.pow/$FOLDERNAME/tmp/restart.txt; - if [ $? -eq 0 ]; then; echo "pow: restarting $FOLDERNAME" ; fi +# 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 -compctl -W ~/.pow -/ kapow + [ ! -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
\ No newline at end of file |