1#!/bin/sh
2# This file is in the public domain
3
4set -e
5
6OPLIST=`sh listallopts.sh`
7
8ODIR=/usr/obj/`pwd`
9RDIR=${ODIR}/_.result
10export ODIR RDIR
11
12
13compa ( ) (
14	if [ ! -f $1/_.mtree ] ; then
15		return
16	fi
17	if [ ! -f $2/_.mtree ] ; then
18		return
19	fi
20
21	mtree -k uid,gid,mode,nlink,size,link,type,flags \
22	    -f ${1}/_.mtree -f $2/_.mtree > $2/_.mtree.all.txt || true
23	grep '^		' $2/_.mtree.all.txt > $4/$3.mtree.chg.txt || true
24	grep '^[^	]' $2/_.mtree.all.txt > $4/$3.mtree.sub.txt || true
25	grep '^	[^	]' $2/_.mtree.all.txt > $4/$3.mtree.add.txt || true
26	a=`wc -l < $4/$3.mtree.add.txt`
27	s=`wc -l < $4/$3.mtree.sub.txt`
28	c=`wc -l < $4/$3.mtree.chg.txt`
29	c=`expr $c / 2 || true`
30
31	br=`awk 'NR == 2 {print $3}' $1/_.df`
32	bt=`awk 'NR == 2 {print $3}' $2/_.df`
33	echo $3 A $a S $s C $c B $bt D `expr $br - $bt`
34)
35
36for o in $OPLIST
37do
38	md=`echo "${o}=foo" | md5`
39	m=${RDIR}/$md
40	if [ ! -d $m ] ; then
41		continue
42	fi
43	if [ ! -d $m/iw -a ! -d $m/bw -a ! -d $m/w ] ; then
44		continue
45	fi
46	echo "=== reduce ${o}"
47
48	echo
49	echo -------------------------------------------------------------
50	echo $md
51	cat $m/src.conf
52	echo -------------------------------------------------------------
53	if [ ! -f $m/iw/done ] ; then
54		echo "IW pending"
55	elif [ ! -f $m/iw/_.success ] ; then
56		echo "IW failed"
57	fi
58	if [ ! -f $m/bw/done ] ; then
59		echo "BW pending"
60	elif [ ! -f $m/bw/_.success ] ; then
61		echo "BW failed"
62	fi
63	if [ ! -f $m/w/done ] ; then
64		echo "W pending"
65	elif [ ! -f $m/w/_.success ] ; then
66		echo "W failed"
67	fi
68	(
69	for x in iw bw w
70	do
71		compa ${RDIR}/Ref/ $m/$x r-$x $m
72	done
73	) > $m/stats
74	cat $m/stats
75done
76echo "== reduce done"
77