Blame view

plugins/pj/pj.plugin.zsh 594 Bytes
d9bebbb3c   mj   Squashed 'repos/r...
1
2
3
4
  alias pjo="pj open"
  
  pj () {
      emulate -L zsh
093a6c34b   mj   Squashed 'repos/r...
5
      cmd="cd"
d9bebbb3c   mj   Squashed 'repos/r...
6
      project=$1
093a6c34b   mj   Squashed 'repos/r...
7

d9bebbb3c   mj   Squashed 'repos/r...
8
      if [[ "open" == "$project" ]]; then
093a6c34b   mj   Squashed 'repos/r...
9
          shift
d9bebbb3c   mj   Squashed 'repos/r...
10
11
          project=$*
          cmd=${=EDITOR}
093a6c34b   mj   Squashed 'repos/r...
12
      else
d9bebbb3c   mj   Squashed 'repos/r...
13
          project=$*
093a6c34b   mj   Squashed 'repos/r...
14
      fi
d9bebbb3c   mj   Squashed 'repos/r...
15
16
17
      for basedir ($PROJECT_PATHS); do
          if [[ -d "$basedir/$project" ]]; then
              $cmd "$basedir/$project"
093a6c34b   mj   Squashed 'repos/r...
18
19
20
              return
          fi
      done
d9bebbb3c   mj   Squashed 'repos/r...
21
      echo "No such project '${project}'."
093a6c34b   mj   Squashed 'repos/r...
22
  }
d9bebbb3c   mj   Squashed 'repos/r...
23
24
  _pj () {
      emulate -L zsh
093a6c34b   mj   Squashed 'repos/r...
25

093a6c34b   mj   Squashed 'repos/r...
26
      typeset -a projects
d9bebbb3c   mj   Squashed 'repos/r...
27
28
29
      for basedir ($PROJECT_PATHS); do
          projects+=(${basedir}/*(/N))
      done
093a6c34b   mj   Squashed 'repos/r...
30

d9bebbb3c   mj   Squashed 'repos/r...
31
32
      compadd ${projects:t}
  }
093a6c34b   mj   Squashed 'repos/r...
33
  compdef _pj pj