summaryrefslogtreecommitdiff
path: root/sys/lib/backup/funcs
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 16:53:33 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 16:53:33 +0300
commite463eb40363ff4c68b1d903f4e0cdd0ac1c5977f (patch)
treed5e9f57c28f026cb21de3bd77cc10cd7f64aaa85 /sys/lib/backup/funcs
parentb41b9034225ab3e49980d9de55c141011b6383b0 (diff)
Import sources from 2011-03-30 iso image - sys/lib
Diffstat (limited to 'sys/lib/backup/funcs')
-rwxr-xr-xsys/lib/backup/funcs57
1 files changed, 57 insertions, 0 deletions
diff --git a/sys/lib/backup/funcs b/sys/lib/backup/funcs
new file mode 100755
index 000000000..d7d31f626
--- /dev/null
+++ b/sys/lib/backup/funcs
@@ -0,0 +1,57 @@
+#!/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