mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-02 02:19:06 +01:00
Merge 29ed9b2986 into b56e37201d
This commit is contained in:
commit
3b2c867d7a
1 changed files with 77 additions and 6 deletions
|
|
@ -1,10 +1,81 @@
|
|||
# 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
|
||||
# https://gist.github.com/1019777
|
||||
|
||||
# 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 $basedir
|
||||
}
|
||||
|
||||
kapow(){
|
||||
local vhost=$1
|
||||
[ ! -n "$vhost" ] && vhost=$(basename `rack_root_detect` | sed -E "s/.(com|net|org)//")
|
||||
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"
|
||||
}
|
||||
|
||||
# The powinit command symlinks a dir to ~/.pow
|
||||
#
|
||||
# $ powinit /path/to/myapp
|
||||
#
|
||||
# powinit alone uses the working dir:
|
||||
#
|
||||
# $ powinit
|
||||
|
||||
powinit(){
|
||||
local full_path=$1
|
||||
[ -n "$full_path" ] && full_path=$(echo $full_path(:A))
|
||||
[ ! -n "$full_path" ] && full_path=$(rack_root_detect)
|
||||
if [ ! -n "$full_path" ]
|
||||
then
|
||||
echo "pow: Not a rack app"
|
||||
return 1
|
||||
fi
|
||||
local vhost=$(basename $full_path | sed -E "s/.(com|net|org)//")
|
||||
if [ -h ~/.pow/$vhost ]
|
||||
then
|
||||
echo "pow: This domain is already set up. Remove the symlink in ~/.pow to reconfigure."
|
||||
return 1
|
||||
fi
|
||||
ln -s $full_path ~/.pow/$vhost
|
||||
echo "pow: Application set up on http://$vhost.dev"
|
||||
}
|
||||
compctl -W ~/.pow -/ kapow
|
||||
|
||||
# View the standard out (puts) from any pow app
|
||||
alias kaput="tail -f ~/Library/Logs/Pow/apps/*"
|
||||
Loading…
Add table
Add a link
Reference in a new issue