git-count-objects: dc replacement
authorJunio C Hamano <junkio@cox.net>
Sat, 19 Nov 2005 10:54:07 +0000 (02:54 -0800)
committerJunio C Hamano <junkio@cox.net>
Sat, 19 Nov 2005 10:54:07 +0000 (02:54 -0800)
Johannes suggested this earlier but I did not take it so
seriously because this command is not that important.  But this
probably matters on Cygwin which does not seem to come with
precompiled dc.  It is a mystery for me that anything that
mimics UNIX does not offer a dc, though.

I did the detection for the lack of dc command a bit differently
from the verison Johannes did.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-count-objects.sh

index 843d2fd9f2ef53ccd1600dd9b89ec70fbc639146..fc61a1a987d45bc73bcee805e9010c5ac96ea66a 100755 (executable)
@@ -1,6 +1,24 @@
 #!/bin/sh
+#
+# Copyright (c) 2005 Junio C Hamano
+#
 
-. git-sh-setup
+. git-sh-setup || die "Not a git repository"
+
+dc </dev/null 2>/dev/null || {
+       # This is not a real DC at all -- it just knows how
+       # this script feeds DC and does the computation itself.
+       dc () {
+               while read a b
+               do
+                       case $a,$b in
+                       0,)     acc=0 ;;
+                       *,+)    acc=$(($acc + $a)) ;;
+                       p,)     echo "$acc" ;;
+                       esac
+               done
+       }
+}
 
 echo $(find "$GIT_DIR/objects"/?? -type f -print 2>/dev/null | wc -l) objects, \
 $({