summaryrefslogtreecommitdiff
path: root/usr/src/tools/scripts/bfudrop.sh
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/tools/scripts/bfudrop.sh')
-rw-r--r--usr/src/tools/scripts/bfudrop.sh123
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