Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

#!/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