xref: /plan9-contrib/sys/lib/backup/tobackup (revision 5c4758af3bd7470d8343bf59abb10a24c299f474)
1*5c4758afSDavid du Colombier#!/bin/rc
2*5c4758afSDavid du Colombier# tobackup [set] - print names of venti arenas needing to be dumped to disc set
3*5c4758afSDavid du Colombierrfork e
4*5c4758afSDavid du Colombier
5*5c4758afSDavid du Colombiercd /sys/lib/backup
6*5c4758afSDavid du Colombier. funcs
7*5c4758afSDavid du Colombier
8*5c4758afSDavid du Colombierswitch ($#*) {
9*5c4758afSDavid du Colombiercase 0
10*5c4758afSDavid du Colombiercase 1
11*5c4758afSDavid du Colombier	set=$1
12*5c4758afSDavid du Colombiercase *
13*5c4758afSDavid du Colombier	echo usage: $0 '[set]' >[1=2]
14*5c4758afSDavid du Colombier	exit usage
15*5c4758afSDavid du Colombier}
16*5c4758afSDavid du Colombier
17*5c4758afSDavid du Colombierif (! test -d $set) {
18*5c4758afSDavid du Colombier	echo $0: no backup set named $set in $backup >[1=2]
19*5c4758afSDavid du Colombier	exit 'no backup set'
20*5c4758afSDavid du Colombier}
21*5c4758afSDavid du Colombierif (! hget -o index http://$fs/index) {
22*5c4758afSDavid du Colombier	echo $0: 'can''t fetch venti index from' $fs >[1=2]
23*5c4758afSDavid du Colombier	exit 'no venti index'
24*5c4758afSDavid du Colombier}
25*5c4758afSDavid du Colombierif (! test -s index) {
26*5c4758afSDavid du Colombier	echo $0: 'empty venti index from' $fs >[1=2]
27*5c4758afSDavid du Colombier	exit 'empty index'
28*5c4758afSDavid du Colombier}
29*5c4758afSDavid du Colombier
30*5c4758afSDavid du Colombiercd $set
31*5c4758afSDavid du Colombierawk '/^arena=/		{ name=$1 }
32*5c4758afSDavid du Colombier	/ disk=sealed/	{ print name; name = "" }
33*5c4758afSDavid du Colombier    ' ../index | sed 's/^arena=//' >nsealed
34*5c4758afSDavid du Colombier>>sealed
35*5c4758afSDavid du Colombierif (! cmp -s sealed nsealed)
36*5c4758afSDavid du Colombier	cp nsealed sealed
37*5c4758afSDavid du Colombierrm -f nsealed
38*5c4758afSDavid du Colombierif (! test -s sealed)
39*5c4758afSDavid du Colombier	exit ''
40*5c4758afSDavid du Colombier
41*5c4758afSDavid du Colombier>>fake
42*5c4758afSDavid du Colombierif (test -s ondisc)
43*5c4758afSDavid du Colombier	comm -23 <{sort -u sealed fake} <{sort -u ondisc}
44*5c4758afSDavid du Colombierif not {				# first sealed arenas, dump all
45*5c4758afSDavid du Colombier	cat sealed
46*5c4758afSDavid du Colombier	chmod +a ondisc >>ondisc
47*5c4758afSDavid du Colombier}
48