1# possible cron job:
2#
3# cd /cfg/backup
4# { for(i in 'E0 E1' 'E2 E3' 'E4 E5' 'E6 E7' 'F0 F1' 'F2 F3' 'F4 F5'){
5# 	x=`{echo $i}
6# 	venti/mirrorarenas -v /dev/sd$x(1)^/arenas /dev/sd$x(2)^/arenas
7# } } >www/mirror1.txt >[2=1]
8# mv www/mirror1.txt www/mirror.txt
9# awk -f mirror-log.awk www/mirror.txt >www/mirror.html
10
11BEGIN {
12	print "<html><body><h1>mirror status</h1>"
13	print "details in <a href=mirror.txt>mirror.txt</a><br><br>"
14	print "<hr><table cellpadding=5 cellspacing=0 border=0>"
15	laststatus = ""
16	firstarena = ""
17	lastarena = ""
18	status = ""
19	arena = ""
20
21}
22
23function fmt(  color) {
24	nfmt++
25	if(nfmt%2 == 0)
26		color = "#cccccc"
27	else
28		color = "#ffffff"
29	return "<tr bgcolor=" color "><td valign=top>%s</td><td valign=top>%s</td><td>%s</td><td>%s</td><td>"
30}
31
32
33function finish() {
34	if(!arena && !status)
35		return
36	if(info == "" && laststatus == status){
37		lastarena = arena
38		return
39	}
40	if(firstarena != ""){
41		if(firstarena == lastarena)
42			printf(fmt(), time, firstarena, "", "");
43		else
44			printf(fmt(), time, firstarena, "-", lastarena);
45		print laststatus "</td></tr>"
46		firstarena = ""
47		lastarena = ""
48		laststatus = ""
49	}
50	if(info == ""){
51		firstarena = arena
52		laststatus = status
53		lastarena = arena
54		return
55	}
56	printf(fmt(), time, arena, "", "");
57	print status
58	if(info != ""){
59		print "<pre>"
60		printf("%s", info)
61		print "</pre>"
62	}
63	print "</td>"
64}
65
66$3 !~ /:$/ && $4 ~ /^\(.*-.*\)$/ {
67	finish();
68	arena = $3
69	range = $4
70	status = ""
71	info = ""
72	size = 0
73	time = $1 " " $2
74	next
75}
76
77$3 ~ /:$/ && $0 ~ /^....\/.... ..:..:.. [^ ]/ {
78	if($4 == "0" && $5 == "used" && $6 == "mirrored"){
79		status = "empty"
80		next
81	}
82	if($4 ~ /^[0-9,]+$/ && $5 == "used" && $6 == "mirrored"){
83		size = $4
84		status = "partial " size ", mirrored"
85		next
86	}
87	if($4 ~ /^[0-9a-f]+$/ && length($4) == 40 && $5 == "sealed" && $6 == "mirrored"){
88		status = "sealed, mirrored";
89		next
90	}
91}
92
93{
94	info = info $0 "\n"
95}
96
97END{
98	finish();
99	status = "done"
100	arena = ""
101	info = ""
102	finish();
103	print "</table><hr>"
104	print "</body></html>"
105}
106