#!/bin/sh
#
# Copyright (c) 2012-2019, DilOS.
#
# Permission is hereby granted, free of charge, to any person obtaining a  copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the  rights
# to use, copy, modify, merge, publish,  distribute,  sublicense,  and/or  sell
# copies of the Software, and  to  permit  persons  to  whom  the  Software  is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall  be  included  in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY  KIND,  EXPRESS  OR
# IMPLIED, INCLUDING BUT NOT LIMITED  TO  THE  WARRANTIES  OF  MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT  SHALL  THE
# AUTHORS OR COPYRIGHT HOLDERS BE  LIABLE  FOR  ANY  CLAIM,  DAMAGES  OR  OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#

#
SVC_RUNDIR=/var/run
SVC_DOOR=/etc/svc/volatile/repository_door
SVCADM=/usr/sbin/svcadm
SVCS=/usr/bin/svcs

# $1	- file (where to store the action)
# $2	- FMRI of the service
svc_save()
{
	local file="${SVC_RUNDIR}/smf_$1"

	if [ -z $1 ] || [ -z $2 ] || [ ${#BASEDIR} -gt 1 ] ||\
		[ ! -e ${SVC_DOOR} ]; then
		return
	fi
	ST="$(${SVCS} -Ho state $2 2>/dev/null || true)"
	if [ "x$ST" = "xonline" ]; then
		${SVCADM} disable $2 || true
		echo "${SVCADM} enable $2" >>${file}
	fi
}

# $1	- file (where actions were stored)
svc_restore()
{
	local file="${SVC_RUNDIR}/smf_$1"

	if [ -f ${file} ]; then
		sh ${file} || true
		rm -f ${file}
	fi
}

# EOF
