#!/bin/rc
# funcs - rc functions and definitions common to dump scripts
fn backupinit {
if (! ~ $backupinitdone yes) {
disc=1
tracks=0
# tunable parameters
set=set1
fs=pie
arenas=/dev/sde0/arena0 # on $fs
rdev=/dev/sdE1 # on terminal with bd burner
blocksize=8192
arenasize=1073741824 # twice the venti default, on yoshimi & pie
# trackbytes=$arenasize
# discbytes=`{ls -l $rdev/data | awk '{print $6}'}
# ntracks=`{ hoc -e 'int('$discbytes/$trackbytes')' }
ntracks=45 # for BD dual-layer
backupinitdone=yes
backups=/sys/lib/backup
path=(/bin $backups .)
}
}
# assume we're in $backups/$set
fn updprog {
echo 'disc='$disc 'tracks='$tracks >ndisc && mv ndisc disc
}
# assumes $set is set
fn dumpdone { # arena-part arena-name
@ {
cd $backups/$set
progress=yes
tracks = `{hoc -e $tracks+1}
updprog
if (~ $debug yes)
echo $2 >>fake # pretend these are sealed
echo $2 >>ondisc
}
}
fn quitonfailure { # exit-status
if (! ~ $1 '' 0 '|')
exit $1
}
# caller sets arenabase first
fn arenastart { # arena#
bytes = `{ echo $arenabase' + ('$1' * '$arenasize')' | bc }
blocks = `{ echo $bytes' / '$blocksize | bc }
echo $blocks
}
backupinit
|