xref: /plan9/sys/lib/dist/pc/inst/mountfossil (revision 9c06fe1d54c51a5e47f19e590a2bc12b07b5d99e)
1#!/bin/rc
2
3switch($1){
4case checkready checkdone
5	if(! ~ $fmtfossil done){
6		mountfs=notdone
7		export mountfs
8		exit
9	}
10	if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*){
11		mountfs=notdone
12		export mountfs
13		exit
14	}
15	if(! ~ $#fossil 1 || ! test -f $fossil){
16		mountfs=ready
17		export mountfs
18		exit
19	}
20	if(! ps | grep -s ' fossil$'){
21		echo 'srv -p fscons' > /env/fossilconf
22		echo 'srv -AP fossil' >> /env/fossilconf
23		fossil/conf $fossil | sed 's/^fsys main open .*/& -AWVP/' |
24			sed 's/^fsys main snaptime .*//' >> /env/fossilconf
25		if(! logprog fossil/fossil -c .' /env/fossilconf'>>[2]/srv/log){
26			echo 'fossil: '^$status
27			mountfs=ready
28			export mountfs
29			exit oops
30		}
31		if(! test -f /srv/fossil){
32			echo 'fossil did not create /srv/fossil'
33			mountfs=ready
34			exit oops
35		}
36		cat /srv/fscons >>/srv/log &
37		if(! logprog mount -c /srv/fossil /n/newfs){
38			echo 'mount: '^$status
39			mountfs=ready
40			export mountfs
41			exit oops
42		}
43		fs=$fossil
44		export fs
45	}
46	if(! test -s /n/newfs/adm/users){
47		echo fsys main create /active/adm adm sys d775 >>/srv/fscons
48		echo fsys main create /active/adm/users adm sys 664 >>/srv/fscons
49		echo uname upas :upas >>/srv/fscons
50		echo users -w >>/srv/fscons
51		sleep 2
52	}
53	if(! test -s /n/newfs/adm/users){
54		echo 'could not create /adm/users'
55		mountfs=ready
56		export mountfs
57		exit oops
58	}
59	for(i in dist dist/replica dist/replica/client){
60		if(! test -d /n/newfs/$i)
61			echo fsys main create /active/$i sys sys d775 >>/srv/fscons
62		sleep 2
63	}
64	if(! test -d /n/newfs/dist/replica/client){
65		echo 'could not create /dist/replica/client'
66		mountfs=ready
67		export mountfs
68		exit oops
69	}
70	if(! test -e /n/newfs/dist/replica/client/plan9.db){
71		echo fsys main create /active/dist/replica/client/plan9.db sys sys 664 >>/srv/fscons
72		echo fsys main create /active/dist/replica/client/plan9.log sys sys a664 >>/srv/fscons
73	}
74	if(test -d /n/newfs/dist/replica/client && test -f /n/newfs/adm/users){
75		mountfs=done
76		export mountfs
77		exit
78	}
79	mountfs=ready
80	export mountfs
81	exit
82
83case go
84	echo 'The following partitions named fossil* were found.'
85	echo
86	echo 'Please choose one to use as the installation file system'
87	echo 'for your Plan 9 installation.'
88	echo
89	files=(`{ls /dev/sd*/fossil* /dev/fs/fossil* >[2]/dev/null})
90	ls -l $files
91	echo
92	if(~ $#fossil 1 && ~ $fossil $files)
93		default=(-d $fossil)
94	if not if(~ $#files 1)
95		default=(-d $files)
96	if not
97		default=()
98	prompt $default 'Fossil partition' $files
99	slay fossil|rc
100	fossil=$rd
101	export fossil
102}
103
104
105