update arch post update script
This commit is contained in:
parent
cbaa5cf408
commit
e612c2ddd0
@ -17,49 +17,61 @@ source /etc/profile
|
||||
ask_overwrite() {
|
||||
echo "Existing destination folder ($ARCH_BOOT_DST_CURRENT_VERSION), do you want to overwrite? (y/n)";
|
||||
read OVERWRITE;
|
||||
test "$OVERWRITE" = "y" && return
|
||||
echo "Do not overwrite. Exitting gently..."
|
||||
exit 0;
|
||||
return `test "$OVERWRITE" = "y"`
|
||||
}
|
||||
|
||||
PACMAN_BIN=${PACMAN_BIN:-/usr/bin/pacman}
|
||||
BOOT_SYMLINK=${BOOT_SYMLINK:-current}
|
||||
do_upgrade() {
|
||||
PKG_NAME=$1
|
||||
ARCH_INITRAMFS=$2
|
||||
ARCH_INITRAMFS_FALLBACK=$3
|
||||
ARCH_VMLINUZ=$4
|
||||
|
||||
CURRENT_VERSION=`${PACMAN_BIN} -Qi linux \
|
||||
PACMAN_BIN=${PACMAN_BIN:-/usr/bin/pacman}
|
||||
BOOT_SYMLINK=${BOOT_SYMLINK:-$PKG_NAME}
|
||||
|
||||
BOOT_ORIG=/boot
|
||||
|
||||
ARCH_BOOT_DST=$TMP_BOOT_DST/$BOOT_DIR_SUFFIX
|
||||
|
||||
|
||||
CURRENT_VERSION=`${PACMAN_BIN} -Qi $PKG_NAME \
|
||||
| sed -n '/^Version *:/p' \
|
||||
| grep -o '[^ ]*$'`
|
||||
BOOT_BLK=/dev/$LVM_VG_BOOT/$LVM_LG_BOOT_NAME
|
||||
BOOT_ORIG=/boot
|
||||
TMP_BOOT_DST=`mktemp -d`
|
||||
|
||||
ARCH_BOOT_DST=$TMP_BOOT_DST/$BOOT_DIR_SUFFIX
|
||||
ARCH_BOOT_DST_CURRENT_VERSION=$ARCH_BOOT_DST/$CURRENT_VERSION
|
||||
ARCH_INITRAMFS=initramfs-linux.img
|
||||
ARCH_INITRAMFS_FALLBACK=initramfs-linux-fallback.img
|
||||
ARCH_VMLINUZ=vmlinuz-linux
|
||||
ARCH_BOOT_DST_CURRENT_VERSION=$ARCH_BOOT_DST/$CURRENT_VERSION
|
||||
|
||||
mount $BOOT_BLK $TMP_BOOT_DST;
|
||||
test -d $ARCH_BOOT_DST_CURRENT_VERSION \
|
||||
test -d $ARCH_BOOT_DST_CURRENT_VERSION \
|
||||
&& test `realpath $ARCH_BOOT_DST/$BOOT_SYMLINK` = $ARCH_BOOT_DST_CURRENT_VERSION \
|
||||
&& echo "Linux version already up to date ($CURRENT_VERSION)" && exit 0;
|
||||
&& echo "$PKG_NAME version already up to date ($CURRENT_VERSION)" && return 1;
|
||||
|
||||
mkdir $ARCH_BOOT_DST_CURRENT_VERSION || ask_overwrite;
|
||||
mkdir $ARCH_BOOT_DST_CURRENT_VERSION || ask_overwrite || return 1;
|
||||
|
||||
(
|
||||
(
|
||||
cd $BOOT_ORIG;
|
||||
# Copy the new kernel files to the real destination in boot fs
|
||||
cp -t $ARCH_BOOT_DST_CURRENT_VERSION $ARCH_INITRAMFS $ARCH_INITRAMFS_FALLBACK $ARCH_VMLINUZ;
|
||||
)
|
||||
)
|
||||
|
||||
(
|
||||
(
|
||||
cd $ARCH_BOOT_DST;
|
||||
# Re-link the good version
|
||||
test -h $BOOT_SYMLINK && rm $BOOT_SYMLINK;
|
||||
ln -s $CURRENT_VERSION current;
|
||||
)
|
||||
ln -s $CURRENT_VERSION $PKG_NAME;
|
||||
)
|
||||
|
||||
echo "$PKG_NAME version updated to $CURRENT_VERSION"
|
||||
}
|
||||
|
||||
TMP_BOOT_DST=`mktemp -d`
|
||||
BOOT_BLK=/dev/$LVM_VG_BOOT/$LVM_LG_BOOT_NAME
|
||||
mount $BOOT_BLK $TMP_BOOT_DST;
|
||||
|
||||
do_upgrade linux initramfs-linux.img initramfs-linux-fallback.img vmlinuz-linux \
|
||||
|| echo "Skipped linux upgrade"
|
||||
|
||||
do_upgrade linux-lts initramfs-linux-lts.img initramfs-linux-lts-fallback.img vmlinuz-linux-lts \
|
||||
|| echo "Skipped linux-lts upgrade"
|
||||
|
||||
echo "Linux version updated to $CURRENT_VERSION"
|
||||
umount $TMP_BOOT_DST;
|
||||
rmdir $TMP_BOOT_DST;
|
||||
exit 0;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user