91 lines
1.9 KiB
Bash
Executable file
91 lines
1.9 KiB
Bash
Executable file
#!/bin/rc
|
|
|
|
# desc: initialize disks for a fossil server
|
|
# prereq: configfs
|
|
|
|
switch($1){
|
|
case checkready checkdone
|
|
if(! ~ $fstype fossil+venti fossil){
|
|
fmtfossil=notdone
|
|
export fmtfossil
|
|
exit
|
|
}
|
|
ff=`{ls /dev/sd*/fossil* /dev/fs/fossil* >[2]/dev/null}
|
|
if(~ $#ff 0){
|
|
fmtfossil=notdone
|
|
export fmtfossil
|
|
exit
|
|
}
|
|
gg=()
|
|
for(f in $ff)
|
|
if(isfossil $f)
|
|
gg=($gg $f)
|
|
if(~ $#gg 0){
|
|
fmtfossil=ready
|
|
export fmtfossil
|
|
exit
|
|
}
|
|
fmtfossil=done
|
|
export fmtfossil
|
|
exit
|
|
|
|
case go
|
|
ff=`{ls /dev/sd*/fossil* /dev/fs/fossil* >[2]/dev/null}
|
|
if(~ $#ff 0){
|
|
echo 'You need to create a partition or partitions to hold the Fossil write cache.'
|
|
echo 'The partition name must begin with "fossil".'
|
|
echo
|
|
fmtfossil=notdone
|
|
export fmtfossil
|
|
exit
|
|
}
|
|
default=()
|
|
if(~ $#ff 1){
|
|
default=(-d $ff)
|
|
}
|
|
echo You have the following fossil partitions.
|
|
echo
|
|
prompt $default 'Fossil partition to format' $ff
|
|
f=$rd
|
|
|
|
do=yes
|
|
if(isfossil $f){
|
|
echo $f appears to already be formatted as Fossil file system.
|
|
echo Do you really want to reformat it?
|
|
echo
|
|
prompt -d no 'Reformat '$f yes no
|
|
do=$rd
|
|
}
|
|
if(~ $do yes){
|
|
fossil/flfmt -y $f
|
|
n=`{cat /dev/swap | grep ' user' | sed 's/^[0-9]+\/([0-9]+) .*/\1/'}
|
|
if(test $n -gt 32768)
|
|
m=3000 # if have at least 128 user MB, use 24MB for fossil
|
|
if not if(test $n -gt 16384)
|
|
m=1500 # 64 user MB => 12MB for fossil
|
|
if not if(test $n -gt 8192)
|
|
m=750 # 32 user MB => 6MB for fossil
|
|
if not
|
|
m=256 # 2MB for fossil (this will be slow)
|
|
|
|
# if we're using a venti in the back, take hourly snapshots
|
|
# that retire after three days, in addition to the daily dumps at 5am
|
|
if(~ $fstype fossil+venti){
|
|
v=''
|
|
snap='fsys main snaptime -s 60 -a 0500 -t 2880'
|
|
}
|
|
# otherwise, take the daily dumps but nothing else --
|
|
# we can't retire snapshots unless dumps are being archived
|
|
if not{
|
|
v='-V'
|
|
snap=''
|
|
}
|
|
echo \
|
|
'fsys main config '^$f^'
|
|
fsys main open '^$v^' -c '^$m^'
|
|
'^$snap^'
|
|
' | fossil/conf -w $f
|
|
}
|
|
|
|
echo Done.
|
|
}
|