diff options
Diffstat (limited to 'usr/src/tools/scripts/bfudrop.sh')
| -rw-r--r-- | usr/src/tools/scripts/bfudrop.sh | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/usr/src/tools/scripts/bfudrop.sh b/usr/src/tools/scripts/bfudrop.sh new file mode 100644 index 0000000000..5c0b79cca4 --- /dev/null +++ b/usr/src/tools/scripts/bfudrop.sh @@ -0,0 +1,123 @@ +#! /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 |
