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