#!/bin/rc # desc: choose and mount file system partition sname=fossil.newfs switch($1){ case go echo echo Please choose drive with fossil and venti arenas+isect partitions echo files=(`{ls /dev/sd*/fossil* /dev/fs/fossil* >[2]/dev/null}) if(! ~ $#files 0) ls -l $files echo if(~ $#files 1) default=(-d $files) if not default=() prompt $default 'Fossil partition' $files fs=$rd export fs fsflags=() export fsflags files=(`{ls /dev/sd*/arenas* /dev/fs/arenas* >[2]/dev/null}) if(! ~ $#files 0) ls -l $files echo if(~ $#files 1) default=(-d $files) if not default=() prompt $default 'Venti arenas partition' $files fsarenas=$rd export fsarenas files=(`{ls /dev/sd*/isect* /dev/fs/isect* >[2]/dev/null}) if(! ~ $#files 0) ls -l $files echo if(~ $#files 1) default=(-d $files) if not default=() prompt $default 'Venti isect partition' $files fsisect=$rd export fsisect if(! test -f $fs){ echo 'Fossil partition not found!' mountfs=ready export mountfs exit oops } if(! test -f $fsarenas){ echo 'Venti arenas partition not found!' mountfs=ready export mountfs exit oops } if(! test -f $fsisect){ echo 'Venti isect partition not found!' mountfs=ready export mountfs exit oops } echo fsys main config $fs >/tmp/initfossil.conf cat initfossil.conf >>/tmp/initfossil.conf echo fsys main config $fs >/tmp/fossil.conf cat fossil.conf >>/tmp/fossil.conf echo index main >/tmp/venti.conf echo arenas $fsarenas >>/tmp/venti.conf echo isect $fsisect >>/tmp/venti.conf cat venti.conf >>/tmp/venti.conf log Starting fossil file server for $fs unmount /n/newfs >[2]/dev/null fossil/flfmt $fs fossil/conf -w $fs /tmp/initfossil.conf fossil/fossil -f $fs fossil/conf -w $fs /tmp/fossil.conf venti/fmtarenas arenas $fsarenas venti/fmtisect isect $fsisect venti/fmtindex /tmp/venti.conf venti/conf -w $fsarenas /tmp/venti.conf log Mounting fossil file server for $fs while(! logprog mount -c /srv/$sname /n/newfs) sleep 2 case checkready checkdone if(! ~ $fstype '' && ~ $#fs 1 && test -f $fs){ if(test -f /srv/$sname && test -d /n/newfs/adm){ mountfs=done export mountfs exit } } mountfs=ready export mountfs exit }