]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/git/add
git: better handling of absolute paths, regex metachars
[plan9front.git] / sys / src / cmd / git / add
1 #!/bin/rc -e
2 rfork ne
3 . /sys/lib/git/common.rc
4
5 gitup
6
7 flagfmt='r:remove'; args='file ...'
8 eval `''{aux/getflags $*} || exec aux/usage
9
10 add='tracked'
11 del='removed'
12 if(~ $remove 1){
13         add='removed'
14         del='tracked'
15 }
16 if(~ $#* 0)
17         exec aux/usage
18
19 paths=`$nl{cleanname -d $gitrel $* | drop $gitroot}
20 if(~ $add tracked)
21         files=`$nl{walk -f ./$paths}
22 if not
23         files=`$nl{cd .git/index9/tracked/ && walk -f ./$paths}
24
25 for(f in $files){
26         if(! ~ `$nl{cleanname $f} .git/*){
27                 addpath=.git/index9/$add/$f
28                 delpath=.git/index9/$del/$f
29                 mkdir -p `$nl{basename -d $addpath}
30                 mkdir -p `$nl{basename -d $delpath}
31                 # We don't want a matching qid, so that
32                 # git/walk doesn't think this came from
33                 # a checkout.
34                 echo -n > $addpath
35                 rm -f $delpath
36         }
37 }
38 exit ''