plan9front/rc/bin/inst/mountcwfs

139 lines
2.7 KiB
Plaintext
Raw Normal View History

2011-04-21 17:50:41 -07:00
#!/bin/rc
# desc: choose and mount file system partition
sname=cwfs.newfs
2011-04-21 17:50:41 -07:00
switch($1){
case go
echo
echo Please choose your $fstype partitions
2011-04-21 17:50:41 -07:00
echo
files=(`{ls /dev/sd*/fscache* /dev/fs/fscache* >[2]/dev/null})
if(! ~ $#files 0)
ls -l $files
2011-04-21 17:50:41 -07:00
echo
if(~ $#files 1)
default=(-d $files)
if not
default=()
prompt $default 'Cwfs cache partition' $files
fs=$rd
export fs
2012-08-09 11:17:51 -07:00
fsflags=()
2012-08-07 08:57:04 -07:00
export fsflags
2011-04-21 17:50:41 -07:00
files=(`{ls /dev/sd*/fsworm* /dev/fs/fsworm* >[2]/dev/null})
if(! ~ $#files 0)
ls -l $files
2011-04-21 17:50:41 -07:00
echo
if(~ $#files 1)
default=(-d $files)
if not
default=()
prompt $default 'Cwfs worm partition' $files
fsworm=$rd
export fsworm
files=(`{ls /dev/sd*/other* /dev/fs/other* >[2]/dev/null})
if(! ~ $#files 0)
ls -l $files
2011-04-21 17:50:41 -07:00
echo
if(~ $#files 1)
default=(-d $files)
if not
default=()
prompt $default 'Cwfs other partition' $files
fsother=$rd
export fsother
ream=no
if(! ~ $fstype `{fstype $fs})
ream=yes
prompt -d $ream 'Ream the filesystem?' yes no
ream=$rd
2011-04-21 17:50:41 -07:00
log Starting $fstype file server for $fs
unmount /n/newfs >[2]/dev/null
echo halt >>/srv/$sname.cmd >[2]/dev/null
rm -f /srv/$sname /srv/$sname.cmd
if(~ $ream yes){
if(! test -f /tmp/fsconfig){
{
echo service cwfs
echo config $fs
echo noauth
echo filsys main c'('$fs')('$fsworm')'
echo filsys dump o
if(! ~ $fsother ''){
echo filsys other '('$fsother')'
echo ream other
}
echo ream main
echo end
} >/tmp/fsconfig
}
echo 'Reaming filesystem'
if(! $fstype -n $sname -f $fs -C -c </tmp/fsconfig){
mountfs=ready
export mountfs
exit oops
}
}
if not {
echo 'Entering manual configuration mode. when done, type end'
if(! $fstype -n $sname -f $fs -c){
mountfs=ready
export mountfs
exit oops
}
2011-04-21 17:50:41 -07:00
}
2012-09-17 02:45:25 -07:00
log Configuring $fstype file server for $fs
2011-04-21 17:50:41 -07:00
{
echo noattach
2011-04-21 17:50:41 -07:00
echo allow
echo users default
echo cfs main
2011-04-21 17:50:41 -07:00
echo create /adm adm adm 775 d
echo create /adm/users adm adm 664
echo create /dist sys sys 775 d
echo create /usr sys sys 775 d
2011-04-21 17:50:41 -07:00
echo newuser $user
echo newuser adm +$user
echo newuser sys +$user
2011-05-04 07:33:04 -07:00
echo newuser upas +$user
2011-04-21 19:40:11 -07:00
if(! ~ $fsother ''){
echo cfs other
echo create /usr sys sys 775 d
echo create /usr/$user $user $user 775 d
echo create /usr/$user/tmp $user $user 750 d
echo cfs main
}
echo noattach
sleep 2
} >>/srv/$sname.cmd
2011-04-21 17:50:41 -07:00
log Mounting $fstype file server for $fs
while(! logprog mount -c /srv/$sname /n/newfs)
sleep 2
if(! ~ $fsother ''){
log Mounting $fstype file server for $fsother
logprog mount -c /srv/$sname /n/other other
}
2011-04-21 17:50:41 -07:00
case checkready checkdone
if(! ~ $fstype '' && ~ $#fs 1 && test -f $fs){
if(test -f /srv/$sname && test -d /n/newfs/dist){
2011-04-21 17:50:41 -07:00
mountfs=done
export mountfs
exit
}
}
mountfs=ready
export mountfs
exit
}