xref: /plan9-contrib/sys/lib/backup/backuparenas (revision f44e8c008ee019673580999bb166551778627b1e)
15c4758afSDavid du Colombier#!/bin/rc
25c4758afSDavid du Colombier# backuparenas dev name ... - dump arena `name' from $fs to blu-ray disc.
35c4758afSDavid du Colombier#	assumes $set is set.
45c4758afSDavid du Colombierrfork ne
55c4758afSDavid du Colombier# tunable variables
61c9e5a6cSDavid du Colombierfs=pie
75c4758afSDavid du Colombier
85c4758afSDavid du Colombierif (test -e /sys/lib/backup/funcs)
95c4758afSDavid du Colombier	.   /sys/lib/backup/funcs
105c4758afSDavid du Colombier
115c4758afSDavid du Colombierexits=''
125c4758afSDavid du Colombierfsroot=/n/$fs
135c4758afSDavid du Colombierif (! test -e $fsroot/!THIS_IS_^`{echo $fs | tr a-z A-Z}^_MAIN) {
145c4758afSDavid du Colombier	import $fs / $fsroot || exit
155c4758afSDavid du Colombier}
165c4758afSDavid du Colombierunmount /mnt/cd >[2]/dev/null
175c4758afSDavid du Colombiercdfs -d $1 || exit
185c4758afSDavid du Colombiershift
195c4758afSDavid du Colombier
2081f927e7SDavid du Colombierdone=no
2109474398SDavid du Colombierecho -n figuring out disc type...
2281f927e7SDavid du Colombierfor (i in `{seq 1 20})
2381f927e7SDavid du Colombier	if (~ $done no) {
2409474398SDavid du Colombier		m=`{ls -l /mnt/cd | grep bd-r-dl}
2509474398SDavid du Colombier		if (~ $m '' ()) {
2609474398SDavid du Colombier			echo -n .
2781f927e7SDavid du Colombier			sleep 3
2809474398SDavid du Colombier		}
2981f927e7SDavid du Colombier		if not
3081f927e7SDavid du Colombier			done=yes
3109474398SDavid du Colombier	}
3209474398SDavid du Colombierecho
3309474398SDavid du Colombier
3409474398SDavid du Colombierls -l /mnt/cd
3591e577b2SDavid du Colombiergrep next /mnt/cd/ctl
3691e577b2SDavid du Colombierecho -n 'nwa ok? '
3791e577b2SDavid du Colombierok=`{read}
3891e577b2SDavid du Colombierif (! ~ $ok [Yy]*)
3991e577b2SDavid du Colombier	exit bad-nwa
4091e577b2SDavid du Colombier
415c4758afSDavid du Colombiercd $fsroot/dev/fs
42*f44e8c00SDavid du Colombiershname = `{basename $arenas}
43*f44e8c00SDavid du Colombierif (! test -r $shname){
44*f44e8c00SDavid du Colombier	echo $0: $shname in `{pwd} not readable >[1=2]
45*f44e8c00SDavid du Colombier	exit unreadable-arenas
46*f44e8c00SDavid du Colombier}
47*f44e8c00SDavid du Colombier
485c4758afSDavid du Colombierfor (name) {
495c4758afSDavid du Colombier	grep next /mnt/cd/ctl
5086abb9fbSDavid du Colombier	# use -o 8192 to avoid devmnt fragmentation if bd drive is imported
51*f44e8c00SDavid du Colombier	venti/rdarena $shname $name |
5286abb9fbSDavid du Colombier		pump -i 65536 -o 8192 -k 100000 -d 5 >/mnt/cd/wd/$name
5386abb9fbSDavid du Colombier#		pump -i 65536 -o 1048576 -k 51200 -d 10 >/mnt/cd/wd/$name
5491e577b2SDavid du Colombier	quitonfailure $status
5591e577b2SDavid du Colombier
561c9e5a6cSDavid du Colombier#	ls -l /mnt/cd
575c4758afSDavid du Colombier	if (test -e '/env/fn#dumpdone' -a -e '/env/set')
58*f44e8c00SDavid du Colombier		dumpdone $shname $name
595c4758afSDavid du Colombier}
605c4758afSDavid du Colombierecho 'remember to *not* remove /mnt/cd/wd' >[1=2]
615c4758afSDavid du Colombier# don't remove /mnt/cd/wd, since that would finalize the disc
625c4758afSDavid du Colombier# and bugger the permanent toc, at least on bd-r.
635c4758afSDavid du Colombierexit ''
64