summaryrefslogtreecommitdiff
path: root/oh-my-zsh/plugins/pow
diff options
context:
space:
mode:
Diffstat (limited to 'oh-my-zsh/plugins/pow')
-rw-r--r--oh-my-zsh/plugins/pow/README.md21
-rw-r--r--oh-my-zsh/plugins/pow/pow.plugin.zsh85
2 files changed, 106 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/pow/README.md b/oh-my-zsh/plugins/pow/README.md
new file mode 100644
index 0000000..1f8a9d1
--- /dev/null
+++ b/oh-my-zsh/plugins/pow/README.md
@@ -0,0 +1,21 @@
+# pow plugin
+
+This plugin adds completion and commands for [pow](http://pow.cx/), a
+zero-configuration Rack server for macOS.
+
+To use it, add pow to the plugins array of your zshrc file:
+
+```sh
+plugins=(... pow)
+```
+
+## Commands
+
+- `kapow` will restart an app.
+
+ ```bash
+ kapow myapp
+ ```
+
+- `kaput` will show the standard output from any pow app.
+- `repow` will restart the pow process.
diff --git a/oh-my-zsh/plugins/pow/pow.plugin.zsh b/oh-my-zsh/plugins/pow/pow.plugin.zsh
new file mode 100644
index 0000000..0b8ccd1
--- /dev/null
+++ b/oh-my-zsh/plugins/pow/pow.plugin.zsh
@@ -0,0 +1,85 @@
+# 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(){
+ 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
+}
+
+rack_root_detect(){
+ basedir=$(rack_root)
+ 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
+}
+
+powed(){
+ local basedir="$(rack_root)"
+ find ~/.pow/ -type l -lname "*$basedir*" -exec basename {}'.dev' \;
+}
+
+# Restart pow process
+# taken from https://www.matthewratzloff.com
+repow(){
+ lsof | grep 20560 | awk '{print $2}' | xargs kill -9
+ launchctl unload ~/Library/LaunchAgents/cx.pow.powd.plist
+ launchctl load ~/Library/LaunchAgents/cx.pow.powd.plist
+ echo "restarted pow"
+}
+
+# View the standard out (puts) from any pow app
+alias kaput="tail -f ~/Library/Logs/Pow/apps/*"