#!/bin/sh
#
# Univention Package Database
#  This Script tries to add or remove all valid machine accounts in
#  PostgreSQL for pkgdb.  Normally this script is called by
#  /etc/cron.d/univention-pkgdb-check
#
# SPDX-FileCopyrightText: 2004-2025 Univention GmbH
# SPDX-License-Identifier: AGPL-3.0-only

if [ ! -e /etc/postgresql/pkgdb.secret ]
then
	# no chance to do anything
	echo "missing /etc/postgresql/pkgdb.secret"
	exit 1
fi

if ! univention-pkgdb-scan --test-superuser
then
	# or service record not found
	echo "check the postgres installation, the command 'univention-pkgdb-scan --test-superuser' failed"
	exit 1
fi

find /var/lib/univention-pkgdb/add/ -type f | while read file; do
	host=`basename $file`
	if univention-pkgdb-scan --add-system "$host"
	then
		rm "$file"
	else
		echo "pkgdb: failed to remove $host"
	fi
done

find /var/lib/univention-pkgdb/delete/ -type f | while read file; do
	host=`basename $file`
	if univention-pkgdb-scan --del-system "$host"
	then
		rm "$file"
	else
		echo "pkgdb: failed to add $host"
	fi
done

exit 0
