xref: /plan9/386/bin/fossil/conf (revision 7512b2c7bb972f701446cdb318996935dd2f1cc7)
1c8e6e445SDavid du Colombier#!/bin/rc
2c8e6e445SDavid du Colombier# THIS FILE IS AUTOMATICALLY GENERATED
3c8e6e445SDavid du Colombier# FROM /sys/src/cmd/fossil/conf.rc.  DO NOT EDIT.
4c8e6e445SDavid du Colombier
5c8e6e445SDavid du Colombier
6c8e6e445SDavid du Colombier# the fossil configuration is stored at the 127kB offset in the disk
7c8e6e445SDavid du Colombier# and extends for at most 1 kB.
8c8e6e445SDavid du Colombier
9c8e6e445SDavid du Colombierrfork e
10c8e6e445SDavid du Colombierfn usage {
11*7512b2c7SDavid du Colombier	echo 'usage: fossil/conf [-w] /dev/sdC0/fossil [config]' >[1=2]
12c8e6e445SDavid du Colombier	exit usage
13c8e6e445SDavid du Colombier}
14c8e6e445SDavid du Colombier
15c8e6e445SDavid du Colombierwflag=no
16c8e6e445SDavid du Colombierwhile(! ~ $#* 0 && ~ $1 -* && ! ~ $1 --){
17c8e6e445SDavid du Colombier	switch($1){
18c8e6e445SDavid du Colombier	case -w
19c8e6e445SDavid du Colombier		wflag=yes
20c8e6e445SDavid du Colombier	case *
21c8e6e445SDavid du Colombier		usage
22c8e6e445SDavid du Colombier	}
23c8e6e445SDavid du Colombier	shift
24c8e6e445SDavid du Colombier}
25c8e6e445SDavid du Colombierif(~ $1 --)
26c8e6e445SDavid du Colombier	shift
27c8e6e445SDavid du Colombier
28c8e6e445SDavid du Colombierif(~ $wflag no && ! ~ $#* 1)
29c8e6e445SDavid du Colombier	usage
30c8e6e445SDavid du Colombierif(~ $wflag yes && ! ~ $#* 1 2)
31c8e6e445SDavid du Colombier	usage
32c8e6e445SDavid du Colombier
33c8e6e445SDavid du Colombierdisk=$1
34c8e6e445SDavid du Colombierif(! test -f $disk){
35c8e6e445SDavid du Colombier	echo 'unknown disk' $1 >[1=2]
36c8e6e445SDavid du Colombier	exit nodisk
37c8e6e445SDavid du Colombier}
38c8e6e445SDavid du Colombier
39c8e6e445SDavid du Colombierfn sigexit {
40c8e6e445SDavid du Colombier	rm -f /tmp/fossilconf.$pid
41c8e6e445SDavid du Colombier}
42c8e6e445SDavid du Colombier
43c8e6e445SDavid du Colombierif(~ $wflag yes){
44c8e6e445SDavid du Colombier	{echo fossil config; cat $2} >/tmp/fossilconf.$pid || exit oops
45c8e6e445SDavid du Colombier	if(! test -s /tmp/fossilconf.$pid){
46c8e6e445SDavid du Colombier		echo 'config is empty; will not install' >[1=2]
47c8e6e445SDavid du Colombier		exit emptyconfig
48c8e6e445SDavid du Colombier	}
49c8e6e445SDavid du Colombier	if(test `{ls -l /tmp/fossilconf.$pid | awk '{print $6}'} -gt 1024){
50c8e6e445SDavid du Colombier		echo 'config is too long; max is a little less than a kilobyte' >[1=2]
51c8e6e445SDavid du Colombier		exit toolong
52c8e6e445SDavid du Colombier	}
53c8e6e445SDavid du Colombier	dd -quiet 1 -bs 1024 -count 1 -if $disk -iseek 127 \
54c8e6e445SDavid du Colombier		>/tmp/_fossilconf.old || exit backup
55c8e6e445SDavid du Colombier	dd -quiet 1 -count 2 </dev/zero >>/tmp/fossilconf.$pid || exit dd
56c8e6e445SDavid du Colombier	dd -quiet 1 -bs 1024 -count 1 -if /tmp/fossilconf.$pid \
57c8e6e445SDavid du Colombier		-trunc 0 -of $disk -oseek 127 || exit dd2
58c8e6e445SDavid du Colombier	exit 0
59c8e6e445SDavid du Colombier}
60c8e6e445SDavid du Colombier
61c8e6e445SDavid du Colombierdd -quiet 1 -bs 1024 -count 1 -if $disk -iseek 127 |
62c8e6e445SDavid du Colombier	aux/zerotrunc >/tmp/fossilconf.$pid
63c8e6e445SDavid du Colombier
64c8e6e445SDavid du Colombierif(! cmp -s <{sed 1q /tmp/fossilconf.$pid} <{echo fossil config}){
65c8e6e445SDavid du Colombier	echo 'config has bad header' >[1=2]
66c8e6e445SDavid du Colombier	exit badconfig
67c8e6e445SDavid du Colombier}
68c8e6e445SDavid du Colombier
69c8e6e445SDavid du Colombiersed 1d /tmp/fossilconf.$pid
70c8e6e445SDavid du Colombierexit 0
71c8e6e445SDavid du Colombier
72