| Current File : //sbin/exportfs |
#!/usr/sbin/sh
#
# Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
# All Rights Reserved
#!/bin/sh
#
# exportfs: compatibility script for SunOs command.
#
USAGE="Usage: exportfs [-aviu] [-o options] directory"
DFSTAB=/etc/dfs/dfstab
OPTS="rw"
#
# Translate from exportfs opts to share opts
#
fixopts() {
IFS=, ; set - $OPTS ; IFS=" "
for i
do case $i in *access=* ) eval $i ;; esac ; done
if [ ! "$access" ] ; then return ; fi
OPTS=""
for i
do
case $i in
rw=* ) OPTS="$OPTS$i," ;;
ro | rw ) OPTS="${OPTS}$i=$access," ; ropt="true" ;;
access=* ) ;;
* ) OPTS="$OPTS$i," ;;
esac
done
if [ ! "$ropt" ] ; then OPTS="ro=$access,$OPTS" ; fi
OPTS=`echo $OPTS | sed 's/,$//'`
}
bad() {
echo $USAGE >&2
exit 1
}
PATH=/usr/sbin:/usr/bin:$PATH
export PATH
if set -- `getopt aviuo: $*` ; then : ; else bad ; fi
for i in $*
do
case $i in
-a ) aflg="true" ; shift ;; # share all nfs
-v ) vflg="true" ; shift ;; # verbose
-i ) iflg="true" ; shift ;; # ignore dfstab opts
-u ) uflg="true" ; shift ;; # unshare
-o ) oflg="true" ; OPTS=$2 ; shift 2 ;; # option string
-- ) shift ; break ;;
esac
done
if [ $aflg ] ; then
if [ "$DIR" -o "$iflg" -o "$oflg" ] ; then bad ; fi
if [ $uflg ] ; then
if [ $vflg ] ; then echo unshareall -F nfs ; fi
/usr/sbin/unshareall -F nfs
else
if [ $vflg ] ; then echo shareall -F nfs ; fi
/usr/sbin/shareall -F nfs
fi
exit $?
fi
case $# in
0 ) if [ "$iflg" -o "$uflg" -o "$oflg" ] ; then bad ; fi
if [ "$vflg" ] ; then echo share -F nfs ; fi
/usr/sbin/share -F nfs
exit $? ;;
1 ) DIR=$1 ;;
* ) bad ;;
esac
if [ $uflg ] ; then
if [ "$iflg" -o "$oflg" ] ; then bad ; fi
if [ $vflg ] ; then echo unshare -F nfs $DIR ; fi
/usr/sbin/unshare -F nfs $DIR
exit $?
fi
if [ $iflg ] ; then
fixopts
if [ $vflg ] ; then echo share -F nfs -o $OPTS $DIR ; fi
/usr/sbin/share -F nfs -o $OPTS $DIR
else
CMD=`grep $DIR'[ ]*$' $DFSTAB`
if [ "$CMD" = "" ] ; then
echo "exportfs: no entry for $DIR in $DFSTAB" >&2
exit 1
fi
if [ $oflg ] ; then
echo "exportfs: supplied options ignored" >&2
vflg="true"
fi
if [ $vflg ] ; then echo $CMD ; fi
eval $CMD
fi
exit $?