ext-sources/r.manifest
changeset 6340 15242b5e613b
child 6375 52fc99e65452
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ext-sources/r.manifest	Sun Dec 04 01:52:24 2005 +0000
@@ -0,0 +1,52 @@
+#!/bin/sh
+#
+# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+#ident	"@(#)r.manifest	1.2	04/09/24 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
+
+SVCPROP=/usr/bin/svcprop
+
+while read mfst; do
+	if [ "$smf_alive" = "yes" ]; then
+		ENTITIES=`/usr/sbin/svccfg inventory $mfst`
+
+		for fmri in $ENTITIES; do
+			#
+			# Determine whether any of our instances are
+			# enabled.
+			#
+			en_p=`$SVCPROP -p general/enabled $fmri 2>/dev/null`
+			en_o=`$SVCPROP -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
+
+			/usr/sbin/svccfg delete $fmri
+		done
+	fi
+
+	/usr/bin/rm $mfst
+done
+
+exit 0