Allow hierarchical section names
[git] / git-add.sh
1 #!/bin/sh
2
3 usage() {
4     die "usage: git add [-n] [-v] <file>..."
5 }
6
7 show_only=
8 verbose=
9 while : ; do
10   case "$1" in
11     -n)
12         show_only=true
13         ;;
14     -v)
15         verbose=--verbose
16         ;;
17     -*)
18         usage
19         ;;
20     *)
21         break
22         ;;
23   esac
24   shift
25 done
26
27 GIT_DIR=$(git-rev-parse --git-dir) || exit
28
29 if test -f "$GIT_DIR/info/exclude"
30 then
31         git-ls-files -z \
32         --exclude-from="$GIT_DIR/info/exclude" \
33         --others --exclude-per-directory=.gitignore -- "$@"
34 else
35         git-ls-files -z \
36         --others --exclude-per-directory=.gitignore -- "$@"
37 fi |
38 case "$show_only" in
39 true)
40         xargs -0 echo ;;
41 *)
42         git-update-index --add $verbose -z --stdin ;;
43 esac