#!/sbin/sh # # ident "%Z%%M% %I% %E% SMI" # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # This script is used install deferred updates at a same run # level on the machine # Set up localization text domain TEXTDOMAIN=SUNW_PATCHMGR_INITD_SCRIPTS PATCHADD=/usr/sbin/patchadd UNZIP=/usr/bin/unzip CHMOD=/usr/bin/chmod MKDIR=/usr/bin/mkdir ECHO=/usr/bin/echo TOUCH=/usr/bin/touch CHMOD=/usr/bin/chmod export TEXTDOMAIN trap 'exit 0' 1 2 3 15 case "$1" in 'lock') if [ ! -f "$DEFERRED_LOCK_FILE" ] then $TOUCH $DEFERRED_LOCK_FILE $CHMOD 700 $DEFERRED_LOCK_FILE fi ;; 'stop') DEFERRED_DIR=`/usr/sbin/smpatch get patchpro.download.directory` if [ ! -d "$DEFERRED_DIR" ] then DEFERRED_DIR=/var/sadm/spool fi DEFERRED_UPDATES_LIST="$DEFERRED_DIR/disallowed_patch_list" DEFERRED_UPDATES_REPORT="$DEFERRED_DIR/disallowed_patch_list_report" DEFERRED_LOCK_FILE="$DEFERRED_DIR/critical_shutdown_update_lock" export DEFERRED_DIR DEFERRED_UPDATES_LIST DEFERRED_UPDATES_REPORT if [ -f "$DEFERRED_LOCK_FILE" ] then rm -f $DEFERRED_LOCK_FILE exit fi if [ ! -f "$DEFERRED_UPDATES_LIST" ] then exit fi BACKOUT_DIR=`/usr/sbin/smpatch get patchpro.backout.directory` if [ ! -d "$BACKOUT_DIR" -o -z "$BACKOUT_DIR" ] then BACKOUT_PARM= else BACKOUT_PARM="-B $BACKOUT_DIR" fi export BACKOUT_DIR BACKOUT_PARM if [ -f "$DEFERRED_UPDATES_REPORT" ] then rm -f "$DEFERRED_UPDATES_REPORT" fi cat "$DEFERRED_UPDATES_LIST" | while read PATCHID do $ECHO "STATUS INSTALL BEGIN $PATCHID" >> "$DEFERRED_UPDATES_REPORT" /usr/bin/gettext -n -s "Installing update " > /dev/console $ECHO "$PATCHID\c" > /dev/console if [ -f "$DEFERRED_DIR/$PATCHID.jar" ] then $MKDIR $DEFERRED_DIR/$PATCHID.jar.dir $UNZIP -d $DEFERRED_DIR/$PATCHID.jar.dir $DEFERRED_DIR/$PATCHID.jar >/dev/null 2>> "$DEFERRED_UPDATES_REPORT" fi $PATCHADD -t $BACKOUT_PARM $DEFERRED_DIR/$PATCHID.jar.dir/$PATCHID >/dev/null 2>> "$DEFERRED_UPDATES_REPORT" RET=$? if [ $RET -eq 0 ] then /usr/bin/gettext -s " Succeeded" > /dev/console rm $DEFERRED_DIR/$PATCHID.jar >/dev/null 2>&1 else /usr/bin/gettext -s " Failed" > /dev/console fi rm -rf $DEFERRED_DIR/$PATCHID.jar.dir >/dev/null 2>&1 $ECHO "STATUS INSTALL END $PATCHID INSTALL.$RET" >> "$DEFERRED_UPDATES_REPORT" done rm -f "$DEFERRED_UPDATES_LIST" ;; *) ;; esac