version 1.98, 2017/12/11 01:35:44 |
version 1.99, 2017/12/11 01:45:45 |
|
|
#!/bin/sh |
#!/bin/sh |
# $AFresh1: update_openbsd,v 1.97 2017/12/11 00:52:41 andrew Exp $ |
# $AFresh1: update_openbsd,v 1.98 2017/12/11 01:35:44 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 |