bfudrop.sh revision 4e5b757fbcf21077677360be274461dcd9064106
#! /usr/bin/ksh -p
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# ident "%Z%%M% %I% %E% SMI"
#
#
# Wrap up a set of BFU archives as a tarball, including binary license
# files.
# usage: bfudrop build-id
# where "build-id" is the build identifier in the archives directory
# of the current workspace (e.g., "nightly").
#
usage="bfudrop build-id"
fail() {
echo $*
exit 1
}
[ -n "$SRC" ] || fail "Please set SRC."
[ -n "$CODEMGR_WS" ] || fail "Please set CODEMGR_WS."
#
# Directory that we assemble everything in. Everything goes into
# $subdir so that it unpacks cleanly.
#
stagedir=$(mktemp -dt bfudropXXXXX)
[ -n "$stagedir" ] || fail "Can't create staging directory."
scratchdir=$stagedir/tmp
#
# Generate README.BFU-ARCHIVES.$isa from boilerplate and the contents
# of the bfu archives.
# usage: cd archivedir; mkreadme destdir
#
mkreadme() {
destdir=$1
readme=$destdir/README.BFU-ARCHIVES.$isa
sed -e s/@ISA@/$isa/ -e s/@DELIVERY@/BFU-ARCHIVES/ \
$SRC/tools/opensolaris/README.binaries.tmpl > $readme
for f in *; do
echo "==== $f ====" >> $readme
#
# The cpio table of contents includes directories, and
# we just want files. So unpack the cpio file into a
# temp directory, do a find(1) to get the table of
# contents, and remove the temp directory.
#
mkdir -p $scratchdir || fail "can't create $scratchdir."
case $f in
*.gz) cat=gzcat;;
*.Z|*.bz2)
fail "$f: compression type not supported"
;;
*) cat=cat;;
esac
$cat $f | (cd $scratchdir; cpio -id)
if [ $? -ne 0 ]; then
fail "can't extract $f"
fi
(cd $scratchdir; find * -type f -print) | sort >> $readme
rm -rf $scratchdir
done
}
if [ $# -ne 1 ]; then
fail "usage: $usage"
fi
build=$1
subdir="archives-$build"
isa=`uname -p`
tarfile=$CODEMGR_WS/on-bfu-$build.$isa.tar
mkdir -p $stagedir/$subdir/$isa || \
fail "Can't create $stagedir/$subdir/$isa."
cd $CODEMGR_WS
archvdir=archives/$isa/$build
[ -d $archvdir ] || fail "Can't find $archvdir."
# copy archives
(cd $archvdir; tar cf - .) | (cd $stagedir/$subdir/$isa; tar xf -)
# Insert binary license files.
cp -p $SRC/tools/opensolaris/BINARYLICENSE.txt $stagedir/$subdir || \
fail "Can't add BINARYLICENSE.txt"
(cd $archvdir; mkreadme $stagedir/$subdir)
cp -p $CODEMGR_WS/THIRDPARTYLICENSE.BFU-ARCHIVES $stagedir/$subdir || \
fail "Can't add THIRDPARTYLICENSE.BFU-ARCHIVES."
(cd $stagedir; tar cf $tarfile $subdir) || fail "Can't create $tarfile."
bzip2 -f $tarfile || fail "Can't compress $tarfile".
rm -rf $stagedir