xref: /illumos-gate/usr/src/cmd/dfs.cmds/shareall/shareall.sh (revision d203f83453f8fc67147d6661b4c202c221ed0411)
1#!/sbin/sh
2#
3# CDDL HEADER START
4#
5# The contents of this file are subject to the terms of the
6# Common Development and Distribution License (the "License").
7# You may not use this file except in compliance with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22#	Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
23#	Use is subject to license terms.
24
25
26#ident	"%Z%%M%	%I%	%E% SMI"
27# shareall  -- share resources
28
29USAGE="shareall [-F fsys[,fsys...]] [- | file]"
30fsys=
31set -- `getopt F: $*`
32if [ $? != 0 ]		# invalid options
33	then
34	echo $USAGE >&2
35	exit 1
36fi
37for i in $*		# pick up the options
38do
39	case $i in
40	-F)  fsys=$2; shift 2;;
41	--)  shift; break;;
42	esac
43done
44
45if [ $# -gt 1 ]		# accept only one argument
46then
47	echo $USAGE >&2
48	exit 1
49elif [ $# = 1 ]
50then
51	case $1 in
52	-)	infile=;;	# use stdin
53	*)	infile=$1;;	# use a given source file
54	esac
55else
56	infile=/etc/dfs/dfstab	# default
57fi
58
59
60if [ "$fsys" ]		# for each file system ...
61then
62	if [ "$infile" = "/etc/dfs/dfstab" ]
63	then
64	    /usr/sbin/sharemgr start -P $fsys -a
65	else
66	    while read line				# get complete lines
67	    do
68		echo $line
69	    done < $infile |
70
71	    `egrep "^[^#]*[ 	][ 	]*-F[ 	]*(\`echo $fsys|tr ',' '|'\`)" |
72	    /sbin/sh`
73
74	    fsys_file=/etc/dfs/fstypes
75	    if [ -f $fsys_file ]    		# get default file system type
76	    then
77		def_fs=`egrep '^[^#]' $fsys_file | awk '{print $1; exit}'`
78		if [ "$def_fs" = "$fsys" ]      # if default is what we want ...
79		then            		# for every file system ...
80			while read line
81			do
82				echo $line
83			done < $infile |
84
85			# not a comment and no -F option
86			`egrep -v "(^[#]|-F)" | /sbin/sh`
87		fi
88	    else
89		echo "shareall: can't open $fsys_file"
90	    fi
91	fi
92else			# for every file system ...
93	if [ "$infile" = "/etc/dfs/dfstab" ]
94	then
95	    /usr/sbin/sharemgr start -a
96	else
97	    cat $infile|/sbin/sh
98	fi
99fi
100