#!/bin/sh
#Licensed to the Apache Software Foundation (ASF) under one
#or more contributor license agreements.  See the NOTICE file
#distributed with this work for additional information
#regarding copyright ownership.  The ASF licenses this file
#to you under the Apache License, Version 2.0 (the
#"License"); you may not use this file except in compliance
#with the License.  You may obtain a copy of the License at
#
#http://www.apache.org/licenses/LICENSE-2.0
#
#Unless required by applicable law or agreed to in writing,
#software distributed under the License is distributed on an
#"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#KIND, either express or implied.  See the License for the
#specific language governing permissions and limitations
#under the License.

set -e

. /usr/share/debconf/confmodule
ofbiz_init_invoke() {
	if [ -x "/etc/init.d/ofbiz" ]; then
		if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
			invoke-rc.d ofbiz $1 || exit $?
		else
			/etc/init.d/ofbiz $1 || exit $?
		fi
	fi
}
case "$1" in
	(configure|reconfigure)
		ofbiz_init_invoke stop
		dpkg-trigger --no-await ofbiz-install
		;;
esac
#DEBHELPER#
db_stop
