#!/bin/sh
#
# Univention Updater
#  univention-updater-umc-dist-upgrade
#
# Like what you see? Join us!
# https://www.univention.com/about-us/careers/vacancies/
#
# Copyright 2010-2022 Univention GmbH
#
# https://www.univention.de/
#
# All rights reserved.
#
# The source code of this program is made available
# under the terms of the GNU Affero General Public License version 3
# (GNU AGPL V3) as published by the Free Software Foundation.
#
# Binary versions of this program provided by Univention to you as
# well as other copyrighted, protected or trademarked materials like
# Logos, graphics, fonts, specific documentations and configurations,
# cryptographic keys etc. are subject to a license agreement between
# you and Univention and not subject to the GNU AGPL V3.
#
# In the case you use this program under the terms of the GNU AGPL V3,
# the program is provided in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License with the Debian GNU/Linux or Univention distribution in file
# /usr/share/common-licenses/AGPL-3; if not, see
# <https://www.gnu.org/licenses/>.
#

if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then
	echo "${0##*/} [<logfile>] [<statusfile>]"
	echo ""
	echo "${0##*/} performs a dist-upgrade "
	exit 1
fi

LOGFILE="/var/log/univention/updater.log"
STATUSFILE="/var/lib/univention-updater/umc-dist-upgrade.status"

if [ -n "$1" ] ; then
	LOGFILE="$1"
fi
if [ -n "$2" ] ; then
	STATUSFILE="$2"
fi

eval "$(ucr shell)"

echo "Starting dist-upgrade at $(date)" >> "$LOGFILE";
echo "status=RUNNING" > "$STATUSFILE"
export DEBIAN_FRONTEND=noninteractive
if ! ${update_commands_distupgrade:-false} >> "$LOGFILE" 2>&1
then
	echo "status=FAILED" > "$STATUSFILE"
	echo
	echo "ERROR: An error occurred during update. Please check the logfiles."
	date
	exit 1
fi >> "$LOGFILE"

echo "status=DONE" > "$STATUSFILE"
echo >> "$LOGFILE"
echo "The update has been finished successfully at $(date)."  >> "$LOGFILE"

exit 0
