git-log (internal): add approxidate.
[git] / git-count-objects.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2005 Junio C Hamano
4 #
5
6 GIT_DIR=`git-rev-parse --git-dir` || exit $?
7
8 dc </dev/null 2>/dev/null || {
9         # This is not a real DC at all -- it just knows how
10         # this script feeds DC and does the computation itself.
11         dc () {
12                 while read a b
13                 do
14                         case $a,$b in
15                         0,)     acc=0 ;;
16                         *,+)    acc=$(($acc + $a)) ;;
17                         p,)     echo "$acc" ;;
18                         esac
19                 done
20         }
21 }
22
23 echo $(find "$GIT_DIR/objects"/?? -type f -print 2>/dev/null | wc -l) objects, \
24 $({
25     echo 0
26     # "no-such" is to help Darwin folks by not using xargs -r.
27     find "$GIT_DIR/objects"/?? -type f -print 2>/dev/null |
28     xargs du -k "$GIT_DIR/objects/no-such" 2>/dev/null |
29     sed -e 's/[         ].*/ +/'
30     echo p
31 } | dc) kilobytes