r.manifest revision 1ae0874509b6811fdde1dfd46f0d93fd09867a3f
#!/bin/sh
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (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 2006 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# ident "%Z%%M% %I% %E% SMI"
#
# r.manifest - smf(5) manifest remove class action script
#
if [ "$PKG_INSTALL_ROOT" != "" -a "$PKG_INSTALL_ROOT" != "/" ]; then
#
# We can't safely disable the service in this case.
#
smf_alive=no
else
#
# We can verify if the service is disabled prior to
# removal.
#
if [ -r /etc/svc/volatile/repository_door ]; then
smf_alive=yes
fi
fi
MFSTSCAN=/lib/svc/bin/mfstscan
SVCCFG=/usr/sbin/svccfg
SVCPROP=/usr/bin/svcprop
while read mfst; do
if [ "$smf_alive" = "yes" ]; then
ENTITIES=`$SVCCFG inventory $mfst`
for fmri in $ENTITIES; do
#
# Determine whether any of our instances are
# enabled.
#
en_p=`$SVCPROP -C -p general/enabled $fmri 2>/dev/null`
en_o=`$SVCPROP -C -p general_ovr/enabled $fmri 2>/dev/null`
if [ "$en_p" = "true" -o "$en_o" = "true" ]; then
echo "$fmri remains enabled; aborting"
exit 1
fi
$SVCCFG delete $fmri
done
#
# Delete the manifest hash value.
#
pg_name=`$MFSTSCAN -t $mfst`
if $SVCPROP -q -p $pg_name smf/manifest; then
$SVCCFG -s smf/manifest delpg $pg_name
fi
fi
/usr/bin/rm $mfst
done
exit 0