xref: /plan9/sys/lib/dist/pc/inst/mountfossil (revision 9c06fe1d54c51a5e47f19e590a2bc12b07b5d99e)
139734e7eSDavid du Colombier#!/bin/rc
239734e7eSDavid du Colombier
339734e7eSDavid du Colombierswitch($1){
439734e7eSDavid du Colombiercase checkready checkdone
539734e7eSDavid du Colombier	if(! ~ $fmtfossil done){
639734e7eSDavid du Colombier		mountfs=notdone
739734e7eSDavid du Colombier		export mountfs
839734e7eSDavid du Colombier		exit
939734e7eSDavid du Colombier	}
1039734e7eSDavid du Colombier	if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*){
1139734e7eSDavid du Colombier		mountfs=notdone
1239734e7eSDavid du Colombier		export mountfs
1339734e7eSDavid du Colombier		exit
1439734e7eSDavid du Colombier	}
1539734e7eSDavid du Colombier	if(! ~ $#fossil 1 || ! test -f $fossil){
1639734e7eSDavid du Colombier		mountfs=ready
1739734e7eSDavid du Colombier		export mountfs
1839734e7eSDavid du Colombier		exit
1939734e7eSDavid du Colombier	}
2039734e7eSDavid du Colombier	if(! ps | grep -s ' fossil$'){
21a22b0629SDavid du Colombier		echo 'srv -p fscons' > /env/fossilconf
22a22b0629SDavid du Colombier		echo 'srv -AP fossil' >> /env/fossilconf
23*9c06fe1dSDavid du Colombier		fossil/conf $fossil | sed 's/^fsys main open .*/& -AWVP/' |
24a22b0629SDavid du Colombier			sed 's/^fsys main snaptime .*//' >> /env/fossilconf
2539734e7eSDavid du Colombier		if(! logprog fossil/fossil -c .' /env/fossilconf'>>[2]/srv/log){
2639734e7eSDavid du Colombier			echo 'fossil: '^$status
2739734e7eSDavid du Colombier			mountfs=ready
2839734e7eSDavid du Colombier			export mountfs
2939734e7eSDavid du Colombier			exit oops
3039734e7eSDavid du Colombier		}
3139734e7eSDavid du Colombier		if(! test -f /srv/fossil){
3239734e7eSDavid du Colombier			echo 'fossil did not create /srv/fossil'
3339734e7eSDavid du Colombier			mountfs=ready
3439734e7eSDavid du Colombier			exit oops
3539734e7eSDavid du Colombier		}
3639734e7eSDavid du Colombier		cat /srv/fscons >>/srv/log &
37a22b0629SDavid du Colombier		if(! logprog mount -c /srv/fossil /n/newfs){
3839734e7eSDavid du Colombier			echo 'mount: '^$status
3939734e7eSDavid du Colombier			mountfs=ready
4039734e7eSDavid du Colombier			export mountfs
4139734e7eSDavid du Colombier			exit oops
4239734e7eSDavid du Colombier		}
4339734e7eSDavid du Colombier		fs=$fossil
4439734e7eSDavid du Colombier		export fs
4539734e7eSDavid du Colombier	}
46a22b0629SDavid du Colombier	if(! test -s /n/newfs/adm/users){
4739734e7eSDavid du Colombier		echo fsys main create /active/adm adm sys d775 >>/srv/fscons
4839734e7eSDavid du Colombier		echo fsys main create /active/adm/users adm sys 664 >>/srv/fscons
4939734e7eSDavid du Colombier		echo uname upas :upas >>/srv/fscons
5039734e7eSDavid du Colombier		echo users -w >>/srv/fscons
5139734e7eSDavid du Colombier		sleep 2
5239734e7eSDavid du Colombier	}
53a22b0629SDavid du Colombier	if(! test -s /n/newfs/adm/users){
5439734e7eSDavid du Colombier		echo 'could not create /adm/users'
5539734e7eSDavid du Colombier		mountfs=ready
5639734e7eSDavid du Colombier		export mountfs
5739734e7eSDavid du Colombier		exit oops
5839734e7eSDavid du Colombier	}
5939734e7eSDavid du Colombier	for(i in dist dist/replica dist/replica/client){
60a22b0629SDavid du Colombier		if(! test -d /n/newfs/$i)
6139734e7eSDavid du Colombier			echo fsys main create /active/$i sys sys d775 >>/srv/fscons
6239734e7eSDavid du Colombier		sleep 2
6339734e7eSDavid du Colombier	}
64a22b0629SDavid du Colombier	if(! test -d /n/newfs/dist/replica/client){
6539734e7eSDavid du Colombier		echo 'could not create /dist/replica/client'
6639734e7eSDavid du Colombier		mountfs=ready
6739734e7eSDavid du Colombier		export mountfs
6839734e7eSDavid du Colombier		exit oops
6939734e7eSDavid du Colombier	}
70a22b0629SDavid du Colombier	if(! test -e /n/newfs/dist/replica/client/plan9.db){
7139734e7eSDavid du Colombier		echo fsys main create /active/dist/replica/client/plan9.db sys sys 664 >>/srv/fscons
7239734e7eSDavid du Colombier		echo fsys main create /active/dist/replica/client/plan9.log sys sys a664 >>/srv/fscons
7339734e7eSDavid du Colombier	}
74a22b0629SDavid du Colombier	if(test -d /n/newfs/dist/replica/client && test -f /n/newfs/adm/users){
7539734e7eSDavid du Colombier		mountfs=done
7639734e7eSDavid du Colombier		export mountfs
7739734e7eSDavid du Colombier		exit
7839734e7eSDavid du Colombier	}
7939734e7eSDavid du Colombier	mountfs=ready
8039734e7eSDavid du Colombier	export mountfs
8139734e7eSDavid du Colombier	exit
8239734e7eSDavid du Colombier
8339734e7eSDavid du Colombiercase go
8439734e7eSDavid du Colombier	echo 'The following partitions named fossil* were found.'
8539734e7eSDavid du Colombier	echo
8639734e7eSDavid du Colombier	echo 'Please choose one to use as the installation file system'
8739734e7eSDavid du Colombier	echo 'for your Plan 9 installation.'
8839734e7eSDavid du Colombier	echo
8939734e7eSDavid du Colombier	files=(`{ls /dev/sd*/fossil* /dev/fs/fossil* >[2]/dev/null})
9039734e7eSDavid du Colombier	ls -l $files
9139734e7eSDavid du Colombier	echo
9239734e7eSDavid du Colombier	if(~ $#fossil 1 && ~ $fossil $files)
9339734e7eSDavid du Colombier		default=(-d $fossil)
9439734e7eSDavid du Colombier	if not if(~ $#files 1)
9539734e7eSDavid du Colombier		default=(-d $files)
9639734e7eSDavid du Colombier	if not
9739734e7eSDavid du Colombier		default=()
9839734e7eSDavid du Colombier	prompt $default 'Fossil partition' $files
9939734e7eSDavid du Colombier	slay fossil|rc
10039734e7eSDavid du Colombier	fossil=$rd
10139734e7eSDavid du Colombier	export fossil
10239734e7eSDavid du Colombier}
10339734e7eSDavid du Colombier
10439734e7eSDavid du Colombier
105