Skip to content

Instantly share code, notes, and snippets.

@csexton
Created August 2, 2015 15:59
Show Gist options
  • Save csexton/a383d62dca004f24dafa to your computer and use it in GitHub Desktop.
Save csexton/a383d62dca004f24dafa to your computer and use it in GitHub Desktop.
Kapow function for zsh
# Kapow {{{
_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;
if [ $? -eq 0 ]
then
echo " --_--"
echo " ( -_ _)."
echo " ( ~ ) )"
echo " (( ) ( ) () )"
echo " (. )) ( )"
echo ' ``.. ..``'
echo " | |"
echo " (=| |=)"
echo " | | Kapow! Restarted $vhost.dev"
echo ' (../( )\.))'
fi
}
compctl -W ~/.pow -/ kapow
# View the standard out (puts) from any pow app
alias kaput="tail -f ~/Library/Logs/Pow/apps/*"
# Configure a directory for chruby and powrc file
kaboom(){
echo "Creating .powrc file..."
echo "source /usr/local/opt/chruby/share/chruby/chruby.sh" > .powrc
echo "chruby $(cat .ruby-version)" >> .powrc
echo "Symlinking ${PWD##*/} in ~/.pow ..."
ln -si "$PWD" ~/.pow
echo "Done."
}
# }}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment