#!/bin/sh
#
#ident "@(#)growfs.sh   1.8     94/12/06 SMI"
#
# Copyright (c) 1992, 1993, 1994 by Sun Microsystems, Inc.
#

#exec newfs -G "$@"

myname=`basename $0`
USAGE="usage: $myname [ -M mount-point ] [ newfs-options ] raw-special-device"
if [ ! "$UFS_MKFS" ]; then
	UFS_MKFS="/usr/lib/fs/ufs/mkfs"
fi
verbose=""
mkfs_opts="-G"
mkfs_subopts=""
size=""

add_opt() {
	mkfs_opts="$mkfs_opts $1"
}

add_subopt() {
	if [ ! "$mkfs_subopts" ]; then
		mkfs_subopts="-o $1"
	else
		mkfs_subopts="$mkfs_subopts,$1"
	fi
}

while getopts "GM:Nva:b:c:d:f:i:m:n:o:r:s:t:C:" c ; do
	save=$OPTIND

	case $c in
	G)	;;
	M)	add_opt "-M $OPTARG" ;;
	N)	add_subopt "N" ;;
	v)	verbose="1" ;;
	a)	add_subopt "apc=$OPTARG" ;;
	b)	add_subopt "bsize=$OPTARG" ;;
	c)	add_subopt "cgsize=$OPTARG" ;;
	d)	add_subopt "gap=$OPTARG" ;;
	f)	add_subopt "fragsize=$OPTARG" ;;
	i)	add_subopt "nbpi=$OPTARG" ;;
	m)	add_subopt "free=$OPTARG" ;;
	n)	add_subopt "nrpos=$OPTARG" ;;
	o)	add_subopt "opt=$OPTARG" ;;
	r)	add_subopt "rpm=$OPTARG" ;;
	s)	size=$OPTARG ;;
	t)	add_subopt "ntrack=$OPTARG" ;;
	C)	add_subopt "maxcontig=$OPTARG" ;;
	\?)	echo $USAGE; exit 1 ;;
	esac

	OPTIND=$save
done

shift `expr $OPTIND - 1`
if [ $# -ne 1 ]; then
	echo $USAGE
	exit 1
fi
raw_special=$1

if [ ! "$size" ]; then
	size=`devinfo -p $raw_special | awk '{ print $5 }'`
	if [ $? -ne 0 -o ! "$size" ]; then
		echo "$myname: cannot get partition size"
		exit 2
	fi
fi

if [ "$verbose" ]; then
	echo $UFS_MKFS $mkfs_opts $mkfs_subopts $raw_special $size
fi

exec $UFS_MKFS $mkfs_opts $mkfs_subopts $raw_special $size
