xref: /plan9/sys/lib/backup/funcs (revision 1c9e5a6c40ada6e3ab92ef50af8a5afeb33c6858)
15c4758afSDavid du Colombier#!/bin/rc
25c4758afSDavid du Colombier# funcs - rc functions and definitions common to dump scripts
35c4758afSDavid du Colombierfn backupinit {
45c4758afSDavid du Colombier	if (! ~ $backupinitdone yes) {
55c4758afSDavid du Colombier		disc=1
65c4758afSDavid du Colombier		tracks=0
75c4758afSDavid du Colombier
85c4758afSDavid du Colombier		# tunable parameters
95c4758afSDavid du Colombier		set=set1
10*1c9e5a6cSDavid du Colombier		fs=pie
11*1c9e5a6cSDavid du Colombier		arenas=/dev/sde0/arena0	# on $fs
12*1c9e5a6cSDavid du Colombier		rdev=/dev/sdE1		# on terminal with bd burner
13*1c9e5a6cSDavid du Colombier
14*1c9e5a6cSDavid du Colombier		blocksize=8192
15*1c9e5a6cSDavid du Colombier		arenasize=1073741824 # twice the venti default, on yoshimi & pie
16*1c9e5a6cSDavid du Colombier		# trackbytes=$arenasize
17*1c9e5a6cSDavid du Colombier		# discbytes=`{ls -l $rdev/data | awk '{print $6}'}
185c4758afSDavid du Colombier		# ntracks=`{ hoc -e 'int('$discbytes/$trackbytes')' }
195c4758afSDavid du Colombier		ntracks=45		# for BD dual-layer
20*1c9e5a6cSDavid du Colombier
215c4758afSDavid du Colombier		backupinitdone=yes
225c4758afSDavid du Colombier		backups=/sys/lib/backup
23*1c9e5a6cSDavid du Colombier		path=(/bin $backups .)
245c4758afSDavid du Colombier	}
255c4758afSDavid du Colombier}
265c4758afSDavid du Colombier
275c4758afSDavid du Colombier# assume we're in $backups/$set
285c4758afSDavid du Colombierfn updprog {
295c4758afSDavid du Colombier	echo 'disc='$disc 'tracks='$tracks >ndisc && mv ndisc disc
305c4758afSDavid du Colombier}
315c4758afSDavid du Colombier
325c4758afSDavid du Colombier# assumes $set is set
335c4758afSDavid du Colombierfn dumpdone {		# arena-part arena-name
345c4758afSDavid du Colombier	@ {
355c4758afSDavid du Colombier		cd $backups/$set
365c4758afSDavid du Colombier		progress=yes
375c4758afSDavid du Colombier		tracks = `{hoc -e $tracks+1}
385c4758afSDavid du Colombier		updprog
395c4758afSDavid du Colombier		if (~ $debug yes)
405c4758afSDavid du Colombier			echo $2 >>fake	# pretend these are sealed
415c4758afSDavid du Colombier		echo $2 >>ondisc
425c4758afSDavid du Colombier	}
435c4758afSDavid du Colombier}
445c4758afSDavid du Colombier
455c4758afSDavid du Colombierfn quitonfailure {	# exit-status
465c4758afSDavid du Colombier	if (! ~ $1 '' 0 '|')
475c4758afSDavid du Colombier		exit $1
485c4758afSDavid du Colombier}
495c4758afSDavid du Colombier
50*1c9e5a6cSDavid du Colombier# caller sets arenabase first
51*1c9e5a6cSDavid du Colombierfn arenastart {		# arena#
52*1c9e5a6cSDavid du Colombier	bytes =  `{ echo $arenabase' + ('$1' * '$arenasize')' | bc }
53*1c9e5a6cSDavid du Colombier	blocks = `{ echo $bytes' / '$blocksize | bc }
54*1c9e5a6cSDavid du Colombier	echo $blocks
55*1c9e5a6cSDavid du Colombier}
56*1c9e5a6cSDavid du Colombier
575c4758afSDavid du Colombierbackupinit
58