]> git.lizzy.rs Git - plan9front.git/blob - sys/lib/backup/funcs
truss: use A instead of X as address format for data dump
[plan9front.git] / sys / lib / backup / funcs
1 #!/bin/rc
2 # funcs - rc functions and definitions common to dump scripts
3 fn 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
28 fn updprog {
29         echo 'disc='$disc 'tracks='$tracks >ndisc && mv ndisc disc
30 }
31
32 # assumes $set is set
33 fn 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
45 fn quitonfailure {      # exit-status
46         if (! ~ $1 '' 0 '|')
47                 exit $1
48 }
49
50 # caller sets arenabase first
51 fn arenastart {         # arena#
52         bytes =  `{ echo $arenabase' + ('$1' * '$arenasize')' | bc }
53         blocks = `{ echo $bytes' / '$blocksize | bc }
54         echo $blocks
55 }
56
57 backupinit