139734e7eSDavid du Colombier#!/bin/rc 239734e7eSDavid du Colombier 339734e7eSDavid du Colombier# desc: initialize disks for a fossil server 4a22b0629SDavid du Colombier# prereq: configfs 539734e7eSDavid du Colombier 639734e7eSDavid du Colombierswitch($1){ 739734e7eSDavid du Colombiercase checkready checkdone 839734e7eSDavid du Colombier if(! ~ $fstype fossil+venti fossil){ 939734e7eSDavid du Colombier fmtfossil=notdone 1039734e7eSDavid du Colombier export fmtfossil 1139734e7eSDavid du Colombier exit 1239734e7eSDavid du Colombier } 1339734e7eSDavid du Colombier ff=`{ls /dev/sd*/fossil* /dev/fs/fossil* >[2]/dev/null} 1439734e7eSDavid du Colombier if(~ $#ff 0){ 1539734e7eSDavid du Colombier fmtfossil=notdone 1639734e7eSDavid du Colombier export fmtfossil 1739734e7eSDavid du Colombier exit 1839734e7eSDavid du Colombier } 1939734e7eSDavid du Colombier gg=() 2039734e7eSDavid du Colombier for(f in $ff) 2139734e7eSDavid du Colombier if(isfossil $f) 2239734e7eSDavid du Colombier gg=($gg $f) 2339734e7eSDavid du Colombier if(~ $#gg 0){ 2439734e7eSDavid du Colombier fmtfossil=ready 2539734e7eSDavid du Colombier export fmtfossil 2639734e7eSDavid du Colombier exit 2739734e7eSDavid du Colombier } 2839734e7eSDavid du Colombier fmtfossil=done 2939734e7eSDavid du Colombier export fmtfossil 3039734e7eSDavid du Colombier exit 3139734e7eSDavid du Colombier 3239734e7eSDavid du Colombiercase go 3339734e7eSDavid du Colombier ff=`{ls /dev/sd*/fossil* /dev/fs/fossil* >[2]/dev/null} 3439734e7eSDavid du Colombier if(~ $#ff 0){ 3539734e7eSDavid du Colombier echo 'You need to create a partition or partitions to hold the Fossil write cache.' 3639734e7eSDavid du Colombier echo 'The partition name must begin with "fossil".' 3739734e7eSDavid du Colombier echo 3839734e7eSDavid du Colombier fmtfossil=notdone 3939734e7eSDavid du Colombier export fmtfossil 4039734e7eSDavid du Colombier exit 4139734e7eSDavid du Colombier } 4239734e7eSDavid du Colombier default=() 4339734e7eSDavid du Colombier if(~ $#ff 1){ 4439734e7eSDavid du Colombier default=(-d $ff) 4539734e7eSDavid du Colombier } 4639734e7eSDavid du Colombier echo You have the following fossil partitions. 4739734e7eSDavid du Colombier echo 4839734e7eSDavid du Colombier prompt $default 'Fossil partition to format' $ff 4939734e7eSDavid du Colombier f=$rd 5039734e7eSDavid du Colombier 5139734e7eSDavid du Colombier do=yes 5239734e7eSDavid du Colombier if(isfossil $f){ 5339734e7eSDavid du Colombier echo $f appears to already be formatted as Fossil file system. 5439734e7eSDavid du Colombier echo Do you really want to reformat it? 5539734e7eSDavid du Colombier echo 5639734e7eSDavid du Colombier prompt -d no 'Reformat '$f yes no 5739734e7eSDavid du Colombier do=$rd 5839734e7eSDavid du Colombier } 5939734e7eSDavid du Colombier if(~ $do yes){ 6039734e7eSDavid du Colombier fossil/flfmt -y $f 61*9c06fe1dSDavid du Colombier n=`{cat /dev/swap | grep ' user' | sed 's/^[0-9]+\/([0-9]+) .*/\1/'} 6239734e7eSDavid du Colombier if(test $n -gt 32768) 6339734e7eSDavid du Colombier m=3000 # if have at least 128 user MB, use 24MB for fossil 6439734e7eSDavid du Colombier if not if(test $n -gt 16384) 6539734e7eSDavid du Colombier m=1500 # 64 user MB => 12MB for fossil 6639734e7eSDavid du Colombier if not if(test $n -gt 8192) 6739734e7eSDavid du Colombier m=750 # 32 user MB => 6MB for fossil 6839734e7eSDavid du Colombier if not 6939734e7eSDavid du Colombier m=256 # 2MB for fossil (this will be slow) 7039734e7eSDavid du Colombier 7139734e7eSDavid du Colombier # if we're using a venti in the back, take hourly snapshots 7239734e7eSDavid du Colombier # that retire after three days, in addition to the daily dumps at 5am 7339734e7eSDavid du Colombier if(~ $fstype fossil+venti){ 7439734e7eSDavid du Colombier v='' 75a22b0629SDavid du Colombier snap='fsys main snaptime -s 60 -a 0500 -t 2880' 7639734e7eSDavid du Colombier } 7739734e7eSDavid du Colombier # otherwise, take the daily dumps but nothing else -- 7839734e7eSDavid du Colombier # we can't retire snapshots unless dumps are being archived 7939734e7eSDavid du Colombier if not{ 8039734e7eSDavid du Colombier v='-V' 81a22b0629SDavid du Colombier snap='' 8239734e7eSDavid du Colombier } 8339734e7eSDavid du Colombier echo \ 8439734e7eSDavid du Colombier'fsys main config '^$f^' 8539734e7eSDavid du Colombierfsys main open '^$v^' -c '^$m^' 86a22b0629SDavid du Colombier'^$snap^' 8739734e7eSDavid du Colombier' | fossil/conf -w $f 8839734e7eSDavid du Colombier } 8939734e7eSDavid du Colombier 9039734e7eSDavid du Colombier echo Done. 9139734e7eSDavid du Colombier} 92