#!/bin/sh # Install all the packages in packagelist echo "INSTALLING locally built packages:" PKG_INSTALL_CMD="${INSTALL_DST}/usr/local/packages/lancsadmin/sbin/package_install" # '8' for solaris 8; '9' for solaris 9 etc OSVER=`uname -r | sed 's/5\.//'` for FILE in packagelist packagelist-${SI_HOSTNAME} \ packagelist-sol${OSVER} packagelist-${SI_HOSTNAME}-sol${OSVER} do if [ -f ${LANCS_SRC}/files/${FILE} ] then PACKAGELIST=${LANCS_SRC}/files/${FILE} fi done if [ "${PACKAGELIST}" = "" -o ! -f "${PACKAGELIST}" ] then echo "Error: no package list!" exit fi echo "using list '${PACKAGELIST}'" # the sed expressions below (1) remove comments, (2) remove empty lines sed -e 's/#.*//' -e '/^ *$/ d' < ${PACKAGELIST} | \ ( # need a subshell for read to work while read PKG VER do echo "\t$PKG" cd ${INSTALL_DST}/usr/local/packages PKGVER=${PKG} [ "${VER}" != "" ] && PKGVER="${PKGVER}-${VER}" FILE=${LANCS_SRC}/packages/${PKGVER}-solx86.tar # preferentially use GNU tar, # but fall back to Solaris tar if it's not installed yet TAR=${INSTALL_DST}/usr/local/bin/tar [ ! -x ${TAR} ] && TAR=/usr/sfw/bin/gtar [ ! -x ${TAR} ] && TAR=/usr/bin/tar # work out what decompression is needed on the package archive (if any) UNCOMPRESS=cat if [ -f "${FILE}.bz2" ] then FILE="${FILE}.bz2" UNCOMPRESS=bzcat elif [ -f "${FILE}.gz" ] then FILE="${FILE}.gz" UNCOMPRESS=gzcat fi # unpack the files ${UNCOMPRESS} ${FILE} | ${TAR} xfp - # do the per-package installation ${PKG_INSTALL_CMD} ${PKG} ${VER} done )