|
@@ -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
|