From: Zoltán Felleg Date: Sun, 9 Nov 2025 09:53:43 +0000 (+0100) Subject: Updated scripts/c3.sh (synchronized from/with qqcs-lxc). X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=14e8387c205ca52b1135ffb489584bd941f41597;p=user-lxc.git Updated scripts/c3.sh (synchronized from/with qqcs-lxc). --- diff --git a/scripts/c3.sh b/scripts/c3.sh index 1c1e694..2e34dea 100755 --- a/scripts/c3.sh +++ b/scripts/c3.sh @@ -30,7 +30,7 @@ backup_old_container() if [ -d $OLD_CONTAINER_BACKUP_PATH ] then echo " Removing the oldest container backup." - rm -Rf ${OLD_CONTAINER_BACKUP_PATH}.old + rm --force --recursive ${OLD_CONTAINER_BACKUP_PATH}.old mv $OLD_CONTAINER_BACKUP_PATH ${OLD_CONTAINER_BACKUP_PATH}.old fi @@ -90,7 +90,7 @@ copy_and_install() case "$DISTRIBUTION" in "CentOS") - YUM_CONFIG=$SCRIPT_PATH/yum.conf.centos + YUM_CONFIG=$SCRIPT_PATH/yum.conf.centos.$SHORT_HOSTNAME YUM_RELEASEVER=$DISTRIBUTION_VERSION if [ -n "$SPEC_PACKAGES" ] then @@ -111,7 +111,7 @@ copy_and_install() clean all ;; "Fedora") - DNF_CONFIG=$SCRIPT_PATH/dnf.conf.fedora + DNF_CONFIG=$SCRIPT_PATH/dnf.conf.fedora.$SHORT_HOSTNAME DNF_RELEASEVER=$DISTRIBUTION_VERSION if [ -n "$SPEC_PACKAGES" ] then @@ -132,7 +132,7 @@ copy_and_install() clean all ;; "Rocky") - YUM_CONFIG=$SCRIPT_PATH/yum.conf.rocky + YUM_CONFIG=$SCRIPT_PATH/yum.conf.rocky.$SHORT_HOSTNAME YUM_RELEASEVER=$DISTRIBUTION_VERSION if [ -n "$SPEC_PACKAGES" ] then @@ -163,11 +163,18 @@ create_and_populate_build_path() mkdir --parents $CONTAINER_BUILDROOT + if [ -f $CONTAINER_SOURCE_PATH/config.$SHORT_HOSTNAME ] + then + SOURCE_CONFIG=$CONTAINER_SOURCE_PATH/config.$SHORT_HOSTNAME + else + SOURCE_CONFIG=$CONTAINER_SOURCE_PATH/config + fi + cp --archive $SOURCE_CONFIG $CONTAINER_BUILD_PATH/config sed --expression="s|__CONTAINER_FILESYSTEMS_PATH__|$CONTAINER_FILESYSTEMS_PATH|" \ --expression="s|__CONTAINER_PATH__|$CONTAINER_PATH|" \ --expression="s|__CONTAINER_START_ORDER__|$CONTAINER_START_ORDER|" \ - <$CONTAINER_SOURCE_PATH/config \ - >$CONTAINER_BUILD_PATH/config + --in-place \ + $CONTAINER_BUILD_PATH/config if [ -d $CONTAINER_SOURCE_PATH/hooks ] then cp --archive $CONTAINER_SOURCE_PATH/hooks $CONTAINER_BUILD_PATH @@ -199,6 +206,7 @@ create_environment_file() echo "BACKUPS_PATH=$BACKUPS_PATH" >>$ENV_FILE echo "BUILD_PATH=$BUILD_PATH" >>$ENV_FILE echo "FILESYSTEMS_PATH=$FILESYSTEMS_PATH" >>$ENV_FILE + echo "SHORT_HOSTNAME=$SHORT_HOSTNAME" >>$ENV_FILE echo "SOURCES_PATH=$SOURCES_PATH" >>$ENV_FILE echo "SSH_KEYS_PATH=$SSH_KEYS_PATH" >>$ENV_FILE echo >>$ENV_FILE @@ -297,6 +305,7 @@ set_variables() BACKUPS_PATH=$BASE_PATH/backups BUILD_PATH=$BASE_PATH/build FILESYSTEMS_PATH=$BASE_PATH/filesystems + SHORT_HOSTNAME=$(hostname --short) SOURCES_PATH=$BASE_PATH/sources SSH_KEYS_PATH=$BASE_PATH/user-ssh @@ -309,7 +318,12 @@ set_variables() return 1 fi - if [ ! -f $CONTAINER_SOURCE_PATH/config ] + SOURCE_CONFIG=$CONTAINER_SOURCE_PATH/config + if [ -f $CONTAINER_SOURCE_PATH/config.$SHORT_HOSTNAME ] + then + SOURCE_CONFIG=$CONTAINER_SOURCE_PATH/config.$SHORT_HOSTNAME + fi + if [ ! -f $SOURCE_CONFIG ] then echo "No config file found for $CONTAINER_BASENAME" >&2 return 2 @@ -430,6 +444,22 @@ postinstall() POSTINSTALL_PATH=$CONTAINER_BUILDROOT/c3d/postinstall if [ -d $POSTINSTALL_PATH ] then + MD5SUMS_FILE=$POSTINSTALL_PATH/checksums/MD5SUMS + if [ -f $MD5SUMS_FILE ] + then + MD5SUMS_FILE=/c3d/postinstall/checksums/MD5SUMS + chroot $CONTAINER_BUILDROOT \ + md5sum --check $MD5SUMS_FILE + RC=$? + if [ $RC -ne 0 ] + then + echo "File checksums differ, exiting" >&2 + umount $CONTAINER_BUILDROOT/dev + umount $CONTAINER_BUILDROOT/proc + umount $CONTAINER_BUILDROOT/sys + return $RC + fi + fi RUN_LIST=$POSTINSTALL_PATH/ssh/run.list if [ -f $RUN_LIST ] then @@ -566,6 +596,15 @@ firstboot() FIRSTBOOT_SCRIPT=$(echo $SCRIPT | sed "s|^$CONTAINER_ROOTFS||") echo lxc-attach --name=$CONTAINER_NAME -- $FIRSTBOOT_SCRIPT lxc-attach --name=$CONTAINER_NAME -- $FIRSTBOOT_SCRIPT + RC=$? + if [ $RC -ne 0 ] + then + read -p "$FIRSTBOOT_SCRIPTS returned ${RC}. Continue? [y/N]" ANSWER + if [ "$ANSWER" != "y" ] + then + return $RC + fi + fi done shopt -u nullglob fi @@ -603,6 +642,11 @@ copy_and_install set_c3d_ownership postinstall +RC=$? +if [ $RC -ne 0 ] +then + exit $RC +fi unprivilege