1#!/bin/rc 2# funcs - rc functions and definitions common to dump scripts 3fn backupinit { 4 if (! ~ $backupinitdone yes) { 5 disc=1 6 tracks=0 7 8 # tunable parameters 9 set=set1 10 fs=pie 11 arenas=/dev/sde0/arena0 # on $fs 12 rdev=/dev/sdE1 # on terminal with bd burner 13 14 blocksize=8192 15 arenasize=1073741824 # twice the venti default, on yoshimi & pie 16 # trackbytes=$arenasize 17 # discbytes=`{ls -l $rdev/data | awk '{print $6}'} 18 # ntracks=`{ hoc -e 'int('$discbytes/$trackbytes')' } 19 ntracks=45 # for BD dual-layer 20 21 backupinitdone=yes 22 backups=/sys/lib/backup 23 path=(/bin $backups .) 24 } 25} 26 27# assume we're in $backups/$set 28fn updprog { 29 echo 'disc='$disc 'tracks='$tracks >ndisc && mv ndisc disc 30} 31 32# assumes $set is set 33fn dumpdone { # arena-part arena-name 34 @ { 35 cd $backups/$set 36 progress=yes 37 tracks = `{hoc -e $tracks+1} 38 updprog 39 if (~ $debug yes) 40 echo $2 >>fake # pretend these are sealed 41 echo $2 >>ondisc 42 } 43} 44 45fn quitonfailure { # exit-status 46 if (! ~ $1 '' 0 '|') 47 exit $1 48} 49 50# caller sets arenabase first 51fn arenastart { # arena# 52 bytes = `{ echo $arenabase' + ('$1' * '$arenasize')' | bc } 53 blocks = `{ echo $bytes' / '$blocksize | bc } 54 echo $blocks 55} 56 57backupinit 58