mirror of
https://github.com/BastilleBSD/bastille.git
synced 2025-12-11 17:39:52 +01:00
Merge pull request #1330 from BastilleBSD/upgrade-fix
update/upgrade: simplify vars
This commit is contained in:
@@ -617,7 +617,7 @@ case "${RELEASE}" in
|
||||
UPSTREAM_URL=$(echo "${bastille_url_freebsd}${HW_MACHINE}/${HW_MACHINE_ARCH}/${NAME_VERIFY}" | sed 's/releases/snapshots/')
|
||||
FREEBSD_BRANCH="current"
|
||||
;;
|
||||
*-RELEASE|*-release|*-RC[1-9]|*-rc[1-9]|*-BETA[1-9])
|
||||
*-release|*-RELEASE|*-rc[1-9]|*-RC[1-9]|*-beta[1-9]|*-BETA[1-9])
|
||||
### FreeBSD ###
|
||||
PLATFORM_OS="FreeBSD"
|
||||
NAME_VERIFY=$(echo "${RELEASE}" | grep -iwE '^([0-9]+)\.[0-9](-RELEASE|-RC[1-9]|-BETA[1-9])$' | tr '[:lower:]' '[:upper:]')
|
||||
|
||||
@@ -123,18 +123,18 @@ jail_check() {
|
||||
JAIL_PLATFORM_OS="FreeBSD"
|
||||
fi
|
||||
|
||||
# Set CURRENT_VERSION
|
||||
CURRENT_VERSION=$(/usr/sbin/jexec -l "${TARGET}" freebsd-version 2>/dev/null)
|
||||
if [ -z "${CURRENT_VERSION}" ]; then
|
||||
# Set OLD_RELEASE
|
||||
OLD_RELEASE=$(/usr/sbin/jexec -l "${TARGET}" freebsd-version 2>/dev/null)
|
||||
if [ -z "${OLD_RELEASE}" ]; then
|
||||
error_exit "[ERROR]: Can't determine '${TARGET}' version."
|
||||
fi
|
||||
|
||||
# Validate method (Legacy/PkgBase)
|
||||
if [ "${JAIL_PLATFORM_OS}" = "FreeBSD" ]; then
|
||||
# Validate update method
|
||||
MINOR_VERSION=$(echo ${CURRENT_VERSION} | sed -E 's/^[0-9]+\.([0-9]+)-.*$/\1/')
|
||||
MAJOR_VERSION=$(echo ${CURRENT_VERSION} | grep -Eo '^[0-9]+')
|
||||
if echo "${CURRENT_VERSION}" | grep -oq "\-CURRENT"; then
|
||||
MINOR_VERSION=$(echo ${OLD_RELEASE} | sed -E 's/^[0-9]+\.([0-9]+)-.*$/\1/')
|
||||
MAJOR_VERSION=$(echo ${OLD_RELEASE} | grep -Eo '^[0-9]+')
|
||||
if echo "${OLD_RELEASE}" | grep -oq "\-CURRENT"; then
|
||||
FREEBSD_BRANCH="current"
|
||||
else
|
||||
FREEBSD_BRANCH="release"
|
||||
@@ -181,10 +181,10 @@ jail_update() {
|
||||
fi
|
||||
|
||||
# Update release version (including patch level)
|
||||
NEW_VERSION=$(/usr/sbin/jexec -l "${TARGET}" freebsd-version 2>/dev/null)
|
||||
if [ "${CURRENT_VERSION}" != "${NEW_VERSION}" ]; then
|
||||
bastille config ${TARGET} set osrelease ${NEW_VERSION} >/dev/null
|
||||
info "\nUpgrade complete: ${CURRENT_VERSION} > ${NEW_VERSION}\n"
|
||||
UPDATED_RELEASE=$(/usr/sbin/jexec -l "${TARGET}" freebsd-version 2>/dev/null)
|
||||
if [ "${OLD_RELEASE}" != "${UPDATED_RELEASE}" ]; then
|
||||
bastille config ${TARGET} set osrelease ${UPDATED_RELEASE} >/dev/null
|
||||
info "\nUpgrade complete: ${OLD_RELEASE} > ${UPDATED_RELEASE}\n"
|
||||
else
|
||||
info "\nNo updates available.\n"
|
||||
fi
|
||||
@@ -233,10 +233,10 @@ jail_update_pkgbase() {
|
||||
fi
|
||||
|
||||
# Update release version (including patch level)
|
||||
NEW_VERSION=$(/usr/sbin/jexec -l "${TARGET}" freebsd-version 2>/dev/null)
|
||||
if [ "${CURRENT_VERSION}" != "${NEW_VERSION}" ]; then
|
||||
bastille config ${TARGET} set osrelease ${NEW_VERSION} >/dev/null
|
||||
info "\nUpgrade complete: ${CURRENT_VERSION} > ${NEW_VERSION}\n"
|
||||
UPDATED_RELEASE=$(/usr/sbin/jexec -l "${TARGET}" freebsd-version 2>/dev/null)
|
||||
if [ "${OLD_RELEASE}" != "${UPDATED_RELEASE}" ]; then
|
||||
bastille config ${TARGET} set osrelease ${UPDATED_RELEASE} >/dev/null
|
||||
info "\nUpgrade complete: ${OLD_RELEASE} > ${UPDATED_RELEASE}\n"
|
||||
else
|
||||
info "\nNo updates available.\n"
|
||||
fi
|
||||
@@ -436,9 +436,9 @@ case "${TARGET}" in
|
||||
NAME_VERIFY=$(echo "${TARGET}" | grep -iwE '^([1-9]+)\.[0-9](-STABLE)$' | tr '[:lower:]' '[:upper:]')
|
||||
UPDATE_TARGET="RELEASE"
|
||||
;;
|
||||
*-release|*-RELEASE)
|
||||
*-release|*-RELEASE|*-rc[1-9]|*-RC[1-9]|*-beta[1-9]|*-BETA[1-9])
|
||||
PLATFORM_OS="FreeBSD"
|
||||
NAME_VERIFY=$(echo "${TARGET}" | grep -iwE '^([0-9]+)\.[0-9](-RELEASE)$' | tr '[:lower:]' '[:upper:]')
|
||||
NAME_VERIFY=$(echo "${TARGET}" | grep -iwE '^([0-9]+)\.[0-9](-RELEASE|-RC[1-9]|-BETA[1-9])$' | tr '[:lower:]' '[:upper:]')
|
||||
UPDATE_TARGET="RELEASE"
|
||||
;;
|
||||
current|CURRENT)
|
||||
|
||||
@@ -137,7 +137,7 @@ thick_jail_check() {
|
||||
# Set VERSION
|
||||
OLD_RELEASE="$(${bastille_jailsdir}/${TARGET}/root/bin/freebsd-version 2>/dev/null)"
|
||||
OLD_CONFIG_RELEASE="$(bastille config ${TARGET} get osrelease)"
|
||||
if [ -z "${OLD_RELEASE}" ]; then
|
||||
if [ -z "${OLD_RELEASE}" ] || [ -z "${OLD_CONFIG_RELEASE}" ]; then
|
||||
error_exit "[ERROR]: Can't determine '${TARGET}' version."
|
||||
fi
|
||||
|
||||
@@ -189,9 +189,9 @@ release_check() {
|
||||
PLATFORM_OS="FreeBSD"
|
||||
NAME_VERIFY=$(echo "${NEW_RELEASE}" | grep -iwE '^([1-9]+)\.[0-9](-STABLE)$' | tr '[:lower:]' '[:upper:]')
|
||||
;;
|
||||
*-release|*-RELEASE)
|
||||
*-release|*-RELEASE|*-rc[1-9]|*-RC[1-9]|*-beta[1-9]|*-BETA[1-9])
|
||||
PLATFORM_OS="FreeBSD"
|
||||
NAME_VERIFY=$(echo "${NEW_RELEASE}" | grep -iwE '^([0-9]+)\.[0-9](-RELEASE)$' | tr '[:lower:]' '[:upper:]')
|
||||
NAME_VERIFY=$(echo "${NEW_RELEASE}" | grep -iwE '^([0-9]+)\.[0-9](-RELEASE|-RC[1-9]|-BETA[1-9])$' | tr '[:lower:]' '[:upper:]')
|
||||
;;
|
||||
current|CURRENT)
|
||||
PLATFORM_OS="HardenedBSD"
|
||||
@@ -321,9 +321,18 @@ jail_upgrade_pkgbase() {
|
||||
|
||||
info "\n[${TARGET}]:"
|
||||
|
||||
if [ "${OLD_RELEASE}" = "${NEW_RELEASE}" ]; then
|
||||
error_notify "[ERROR]: Jail is already running '${NEW_RELEASE}'"
|
||||
error_exit "See 'bastille update TARGET' to update jail."
|
||||
# Verify trusted pkg keys
|
||||
if [ ! -f "${fingerprints}/trusted/awskms-${NEW_MAJOR_VERSION}" ]; then
|
||||
if ! fetch -o "${fingerprints}/trusted" https://cgit.freebsd.org/src/tree/share/keys/pkgbase-${NEW_MAJOR_VERSION}/trusted/awskms-${NEW_MAJOR_VERSION}
|
||||
then
|
||||
error_exit "[ERROR]: Failed to fetch trusted pkg keys."
|
||||
fi
|
||||
fi
|
||||
if [ ! -f "${fingerprints}/trusted/backup-signing-${NEW_MAJOR_VERSION}" ]; then
|
||||
if ! fetch -o "${fingerprints}/trusted" https://cgit.freebsd.org/src/tree/share/keys/pkgbase-${NEW_MAJOR_VERSION}/trusted/backup-signing-${NEW_MAJOR_VERSION}
|
||||
then
|
||||
error_exit "[ERROR]: Failed to fetch trusted backup pkg keys."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Upgrade jail with pkgbase (thick only)
|
||||
@@ -356,10 +365,15 @@ jail_upgrade_pkgbase() {
|
||||
fi
|
||||
|
||||
# Update release version (including patch level)
|
||||
NEW_VERSION=$(/usr/sbin/jexec -l "${TARGET}" freebsd-version 2>/dev/null)
|
||||
bastille config ${TARGET} set osrelease ${NEW_VERSION} >/dev/null 2>/dev/null
|
||||
UPGRADED_RELEASE=$(/usr/sbin/jexec -l "${TARGET}" freebsd-version 2>/dev/null)
|
||||
if [ "${OLD_RELEASE}" != "${UPGRADED_RELEASE}" ]; then
|
||||
bastille config ${TARGET} set osrelease ${UPGRADED_RELEASE} >/dev/null 2>/dev/null
|
||||
info "\nUpgrade complete: ${OLD_RELEASE} > ${UPGRADED_RELEASE}\n"
|
||||
else
|
||||
info "\nNo updates available.\n"
|
||||
fi
|
||||
|
||||
info "\nUpgraded ${TARGET}: ${OLD_RELEASE} -> ${NEW_RELEASE}"
|
||||
info "\nUpgraded ${TARGET}: ${OLD_RELEASE} -> ${UPGRADED_RELEASE}"
|
||||
else
|
||||
error_exit "[ERROR]: Not implemented for platform: ${PLATFORM_OS}"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user