summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-11-19 10:54:07 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-11-19 10:54:07 (GMT)
commita4caa5214058ad7e2bc7b74e989d6b3ffb47bec3 (patch)
tree2be4cf7b344a8a70e5f6be964eaba98dfe8fb4d8
parent3eeb419968c1f8f0a762a7127db770e9d9c8037d (diff)
downloadgit-a4caa5214058ad7e2bc7b74e989d6b3ffb47bec3.zip
git-a4caa5214058ad7e2bc7b74e989d6b3ffb47bec3.tar.gz
git-a4caa5214058ad7e2bc7b74e989d6b3ffb47bec3.tar.bz2
git-count-objects: dc replacement
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>
-rwxr-xr-xgit-count-objects.sh20
1 files changed, 19 insertions, 1 deletions
diff --git a/git-count-objects.sh b/git-count-objects.sh
index 843d2fd..fc61a1a 100755
--- a/git-count-objects.sh
+++ b/git-count-objects.sh
@@ -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, \
$({