Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#!/bin/rc
# backuparenas dev name ... - dump arena `name' from $fs to blu-ray disc.
#       assumes $set is set.
rfork ne
# tunable variables
fs=pie

if (test -e /sys/lib/backup/funcs)
        .   /sys/lib/backup/funcs

exits=''
fsroot=/n/$fs
if (! test -e $fsroot/!THIS_IS_^`{echo $fs | tr a-z A-Z}^_MAIN) {
        import $fs / $fsroot || exit
}
unmount /mnt/cd >[2]/dev/null
cdfs -d $1 || exit
shift

done=no
echo -n figuring out disc type...
for (i in `{seq 1 20})
        if (~ $done no) {
                m=`{ls -l /mnt/cd | grep bd-r-dl}
                if (~ $m '' ()) {
                        echo -n .
                        sleep 3
                }
                if not
                        done=yes
        }
echo

ls -l /mnt/cd
grep next /mnt/cd/ctl
echo -n 'nwa ok? '
ok=`{read}
if (! ~ $ok [Yy]*)
        exit bad-nwa

cd $fsroot/dev/fs
shname = `{basename $arenas}
if (! test -r $shname){
        echo $0: $shname in `{pwd} not readable >[1=2]
        exit unreadable-arenas
}

for (name) {
        grep next /mnt/cd/ctl
        # use -o 8192 to avoid devmnt fragmentation if bd drive is imported
        venti/rdarena $shname $name |
                pump -i 65536 -o 8192 -k 100000 -d 5 >/mnt/cd/wd/$name
#               pump -i 65536 -o 1048576 -k 51200 -d 10 >/mnt/cd/wd/$name
        quitonfailure $status

#       ls -l /mnt/cd
        if (test -e '/env/fn#dumpdone' -a -e '/env/set')
                dumpdone $shname $name
}
echo 'remember to *not* remove /mnt/cd/wd' >[1=2]
# don't remove /mnt/cd/wd, since that would finalize the disc
# and bugger the permanent toc, at least on bd-r.
exit ''