#!/bin/ksh -p # # Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ident "%Z%%M% %I% %E% SMI" # # set path, but inherit /tmp/bfubin if it is sane # if [ "`echo $PATH | cut -f 1 -d :`" = /tmp/bfubin ] && \ [ -O /tmp/bfubin ] ; then export PATH=/tmp/bfubin:/usr/sbin:/usr/bin:/sbin else export PATH=/usr/sbin:/usr/bin:/sbin fi usage() { echo "This utility is a component of the bootadm(1M) implementation" echo "and it is not recommended for stand-alone use." echo "Please use bootadm(1M) instead." echo "" echo "Usage: ${0##*/}: [-R ] [-p ] ..." echo "where is one of i86pc, sun4u or sun4v" exit 2 } build_platform() { altroot=$1 ( cd $altroot/ if [ -z "$STRIP" ] ; then ls -d platform/*/kernel else ls -d platform/*/kernel | grep -v $STRIP fi ) } # default platform is what we're running on PLATFORM=`uname -m` altroot="" filelists= platform_provided=no OPTIND=1 while getopts R:p: FLAG do case $FLAG in R) if [ "$OPTARG" != "/" ]; then altroot="$OPTARG" fi ;; p) platform_provided=yes PLATFORM="$OPTARG" ;; *) usage ;; esac done shift `expr $OPTIND - 1` if [ $# -eq 0 ]; then usage fi filelists=$* # # If the target platform is provided, as is the case for diskless, # or we're building an archive for this machine, we can build # a smaller archive by not including unnecessary components. # filtering=no if [ "$altroot" == "" ] || [ $platform_provided = yes ]; then case $PLATFORM in i86pc) STRIP= ;; sun4u) STRIP=platform/sun4v/ ;; sun4v) STRIP=platform/sun4u/ ;; *) STRIP= ;; esac fi for list in $filelists do if [ -f $altroot/$list ]; then grep ^platform$ $altroot/$list > /dev/null if [ $? = 0 ] ; then build_platform $altroot if [ -z "$STRIP" ] ; then cat $altroot/$list | grep -v ^platform$ else cat $altroot/$list | grep -v ^platform$ | \ grep -v $STRIP fi else if [ -z "$STRIP" ] ; then cat $altroot/$list else cat $altroot/$list | grep -v $STRIP fi fi fi done exit 0