summaryrefslogtreecommitdiffstats
path: root/scripts/completions/zsh/_makeobj
blob: 738a952c8e8ecdf812cb878b0fc01331e93b25f4 (plain)
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
#compdef makeobj

local index olddir dir subdir

olddir=$PWD
index="$words[(I)-[fCI]]"
if ! ((index)); then
  if [ ! -f Makefile ]; then
    if [ -n "$OBJ_SUBDIR" ]; then
      dir=$PWD
      subdir=.
      while [ -n "$dir" -a $dir != '/' -a ! -f $dir/$OBJ_SUBDIR/$subdir/Makefile ]; do
        dir=$dir(:h)
        subdir=$dir(:t)/$subdir
      done
      if -f $dir/$OBJ_SUBDIR/$subdir/Makefile; then
        cd $dir/$OBJ_SUBDIR/$subdir
      fi
    elif [ -n "$OBJ_REPLACEMENT" ]; then
      dir=$(echo $PWD | sed -e "$OBJ_REPLACEMENT")
      if [ -f $dir/Makefile ]; then
        cd $dir
      fi
    fi
  fi
fi

_make

cd $olddir