plan9fox/rc/bin/inst/mounthjfs

81 lines
1.6 KiB
Bash
Executable file

#!/bin/rc
# desc: choose and mount file system partition
service=hjfs
switch($1){
case go
echo
echo Please choose your $fstype partition
echo
files=(`{ls /dev/sd*/fs* >[2]/dev/null})
if(! ~ $#files 0)
ls -l $files
echo
if(~ $#files 1)
default=(-d $files)
if not
default=()
prompt $default 'Hjfs partition' $files
fs=$rd
export fs
mem=`{awk ' $2 == "pagesize" { p = $1 } $2 == "user" { split($1, a, "/"); print int((a[2] * p / 4 + 1048575) / 1048576) } ' '#c'/swap}
prompt -d $mem 'Size of RAM filesystem cache (MB)?'
fsflags=(-m $rd)
export fsflags
ream=no
if(! ~ $fstype `{fstype $fs})
ream=yes
prompt -d $ream 'Ream the filesystem?' yes no
ream=$rd
log Starting $fstype file server for $fs
unmount /n/newfs >[2]/dev/null
echo halt >>/srv/$service.cmd >[2]/dev/null
rm -f /srv/$service /srv/$service.cmd
if(~ $ream yes){
hjfs -n $service $fsflags -Srf $fs
}
if not {
hjfs -n $service $fsflags -Sf $fs
}
log Configuring $fstype file server for $fs
{
echo echo on
echo create /dist sys sys 775 d
echo create /usr sys sys 775 d
echo newuser $user
echo newuser adm +$user
echo newuser sys +$user
echo newuser upas +$user
echo echo off
sleep 2
} >>/srv/$service.cmd
log Mounting $fstype file server for $fs
while(! logprog mount -c /srv/$service /n/newfs)
sleep 2
if(! ~ $fsother ''){
log Mounting $fstype file server for $fsother
logprog mount -c /srv/$service /n/other other
}
case checkready checkdone
if(! ~ $fstype '' && ~ $#fs 1 && test -f $fs){
if(test -f /srv/$service && test -d /n/newfs/dist){
mountfs=done
export mountfs
exit
}
}
mountfs=ready
export mountfs
exit
}