xref: /plan9/sys/lib/backup/funcs (revision 1c9e5a6c40ada6e3ab92ef50af8a5afeb33c6858)
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