From af120ab348f2e1a5a39dec035ed9dcf84189a64e Mon Sep 17 00:00:00 2001
From: Biswakalyan Bhuyan <biswa@surgot.in>
Date: Mon, 3 Oct 2022 21:42:20 +0530
Subject: dotfiles

---
 zsh/oh-my-zsh/plugins/pow/pow.plugin.zsh | 85 ++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)
 create mode 100644 zsh/oh-my-zsh/plugins/pow/pow.plugin.zsh

(limited to 'zsh/oh-my-zsh/plugins/pow/pow.plugin.zsh')

diff --git a/zsh/oh-my-zsh/plugins/pow/pow.plugin.zsh b/zsh/oh-my-zsh/plugins/pow/pow.plugin.zsh
new file mode 100644
index 0000000..0b8ccd1
--- /dev/null
+++ b/zsh/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/*"
-- 
cgit v1.2.3-59-g8ed1b