archboot/usr/bin/archboot-server-update.sh

44 lines
1.5 KiB
Bash
Raw Normal View History

2024-07-24 21:30:04 +02:00
#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-3.0-or-later
# created by Tobias Powalowski <tpowa@archlinux.org>
. /etc/archboot/defaults
. /etc/archboot/server-update.conf
. /usr/lib/archboot/common.sh
_usage () {
2024-08-01 13:18:27 +02:00
echo -e "\e[1m\e[36mArchboot\e[m\e[1m - Update Server To New Image\e[m"
echo -e "\e[1m-------------------------------------\e[m"
echo "Check on new packages and release new images to server."
echo ""
2024-08-01 12:39:49 +02:00
echo -e "Usage: \e[1m${_BASENAME} run\e[m"
exit 0
}
[[ -z "${1}" || "${1}" != "run" ]] && _usage
_root_check
2024-07-27 11:31:45 +02:00
[[ -d "${_ISO_HOME_CONTAINERS}" ]] || mkdir -p "${_ISO_HOME_CONTAINERS}"
cd "${_ISO_HOME_CONTAINERS}" || exit 1
2024-07-24 21:30:04 +02:00
# stop if MASK is set
[[ -e MASK ]] && exit 0
2024-07-27 11:09:27 +02:00
_FIRST_RUN=1
2024-07-24 21:30:04 +02:00
for i in ${_SERVER_ARCH}; do
2024-07-27 11:09:27 +02:00
[[ -z "${_FIRST_RUN}" ]] && sleep "${_SERVER_WAIT}"
_FIRST_RUN=""
2024-07-24 21:30:04 +02:00
# create container
if ! [[ -d "${i}" ]]; then
archboot-"${i}"-create-container.sh "${i}" -cp || exit 1
rm "${i}"/var/log/pacman.log
fi
# update container to latest packages
systemd-nspawn -q -D "${i}" pacman --noconfirm -Syu
2024-08-04 08:57:30 +02:00
rg -o 'upgraded (.*) \(' -r '$1' "${i}"/var/log/pacman.log > upgrade-"${i}".log
2024-07-24 21:30:04 +02:00
for k in ${_TRIGGER}; do
# if trigger successful, release new image to server
2024-08-03 14:03:28 +02:00
if rg -qw "${k}" upgrade-"${i}".log; then
2024-08-01 12:24:33 +02:00
archboot-"${i}"-server-release.sh run || echo "Error: ${i} release!" >> error.log
2024-07-24 21:30:04 +02:00
break
fi
done
2024-08-03 14:03:28 +02:00
rm upgrade-"${i}".log
2024-07-24 21:30:04 +02:00
rm "${i}"/var/log/pacman.log
2024-07-27 11:26:18 +02:00
rm "${i}"/var/cache/pacman/pkg/*
2024-07-24 21:30:04 +02:00
done