| version 1.98, 2017/12/11 01:35:44 |
version 1.100, 2017/12/11 01:48:08 |
|
|
| #!/bin/sh |
#!/bin/sh |
| # $AFresh1: update_openbsd,v 1.97 2017/12/11 00:52:41 andrew Exp $ |
# $AFresh1: update_openbsd,v 1.99 2017/12/11 01:45:45 andrew Exp $ |
| # |
# |
| # Copyright (c) 2012 Andrew Fresh <andrew@afresh1.com> |
# Copyright (c) 2012 Andrew Fresh <andrew@afresh1.com> |
| # |
# |
|
|
| BOOT_DEVICE="/dev/$root_disk$msdos_partition" |
BOOT_DEVICE="/dev/$root_disk$msdos_partition" |
| } |
} |
| |
|
| |
boot_device_mounted="" |
| |
mount_boot_device() { |
| |
if [ "boot_device_mounted" ]; then |
| |
echo $boot_device_mounted |
| |
return |
| |
fi |
| |
|
| |
local default_mount=$( df -lnP /bsd | sed -ne 's!/dev/.* !!p' ) |
| |
local boot_mount=$( mount | |
| |
sed -ne "s!^$BOOT_DEVICE on \([^ ]*\).*!\1!p" ) |
| |
|
| |
if [ ! "$boot_mount" ]; then |
| |
mount $BOOT_DEVICE /mnt |
| |
boot_device_mounted=/mnt |
| |
echo /mnt |
| |
elif [ "$boot_mount" != "$default_mount" ]; then |
| |
echo $boot_mount/ |
| |
else |
| |
echo ${default_mount%/}/ |
| |
fi |
| |
} |
| |
|
| |
umount_boot_device() { |
| |
[ "$boot_device_mounted" ] && umount $boot_device_mounted |
| |
boot_device_mounted="" |
| |
} |
| |
|
| set_version() { |
set_version() { |
| CUR_VER=`uname -r` |
CUR_VER=`uname -r` |
| NEW_VER=`dc -e "$CUR_VER 0.1 + p"` |
NEW_VER=`dc -e "$CUR_VER 0.1 + p"` |
|
|
| |
|
| install_kernels() { |
install_kernels() { |
| local _d=$1 |
local _d=$1 |
| local default_mount=$( df -lnP /bsd | sed -ne 's!/dev/.* !!p' ) |
local default_mount |
| local boot_mount |
local boot_mount |
| local mount_is_msdos |
local mount_is_msdos |
| |
|
| if [ ! "$_d" ]; then |
if [ ! "$_d" ]; then |
| boot_mount=$( mount | |
default_mount=$( df -lnP /bsd | sed -ne 's!/dev/.* !!p' ) |
| sed -ne "s!^$BOOT_DEVICE on \([^ ]*\).*!\1!p" ) |
boot_mount=$( mount_boot_device ) |
| |
|
| local _ik="$INSTALL_KERNELS" |
if [ "$boot_mount" != "$default_mount" ]; then |
| INSTALL_KERNELS="${BOOT_KERNEL#/} bsd.rd" |
local _ik="$INSTALL_KERNELS" |
| |
INSTALL_KERNELS="${BOOT_KERNEL#/} bsd.rd" |
| |
|
| if [ ! "$boot_mount" ]; then |
|
| mount $BOOT_DEVICE /mnt |
|
| install_kernels /mnt/ |
|
| umount $BOOT_DEVICE |
|
| elif [ "$boot_mount" != "$default_mount" ]; then |
|
| install_kernels $boot_mount/ |
install_kernels $boot_mount/ |
| |
|
| |
INSTALL_KERNELS="$_ik" |
| fi |
fi |
| |
|
| INSTALL_KERNELS="$_ik" |
umount_boot_device |
| |
|
| install_kernels $default_mount |
install_kernels $default_mount |
| return |
return |
| fi |
fi |
|
|
| exit 1 |
exit 1 |
| fi |
fi |
| |
|
| mount | grep -q " ${_d%/} .* msdos" && mount_is_msdos=1 |
[ $_d != / ] && mount | grep -q " on ${_d%/} .* msdos" && mount_is_msdos=1 |
| |
|
| if [ X"$BOOT_KERNEL_VERSION" != X"$NEW_KERNEL_VERSION" ]; then |
if [ X"$BOOT_KERNEL_VERSION" != X"$NEW_KERNEL_VERSION" ]; then |
| echo "===> Backing up $BOOT_KERNEL to ${_d}obsd" |
echo "===> Backing up $BOOT_KERNEL to ${_d}obsd" |