Blame view

plugins/pow/pow.plugin.zsh 2.08 KB
093a6c34b   mj   Squashed 'repos/r...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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 http://www.matthewratzloff.com/blog/2011/12/23/restarting-pow-when-dns-stops-responding
  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/*"