57 lines
1.2 KiB
Bash
57 lines
1.2 KiB
Bash
#!/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
|