mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Make update-initrd(8) invoke its sysmerge replacement if any.
This commit is contained in:
parent
0bb608b09e
commit
2a143e6875
2 changed files with 26 additions and 27 deletions
|
@ -1,5 +1,5 @@
|
||||||
#!/bin/sh -e
|
#!/bin/sh
|
||||||
# Copyright (c) 2015 Jonas 'Sortie' Termansen.
|
# Copyright (c) 2015, 2016 Jonas 'Sortie' Termansen.
|
||||||
#
|
#
|
||||||
# Permission to use, copy, modify, and distribute this software for any
|
# Permission to use, copy, modify, and distribute this software for any
|
||||||
# purpose with or without fee is hereby granted, provided that the above
|
# purpose with or without fee is hereby granted, provided that the above
|
||||||
|
@ -16,27 +16,7 @@
|
||||||
# update-initrd
|
# update-initrd
|
||||||
# Generate a mkinitrd that locates and chain boots the real root filesystem.
|
# Generate a mkinitrd that locates and chain boots the real root filesystem.
|
||||||
|
|
||||||
show_version() {
|
set -e
|
||||||
cat << EOF
|
|
||||||
$0 (Sortix)
|
|
||||||
EOF
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
show_help() {
|
|
||||||
cat << EOF
|
|
||||||
Usage: $0 [OPTION]...
|
|
||||||
|
|
||||||
Generate a mkinitrd that locates and chain boots the real root filesystem.
|
|
||||||
|
|
||||||
Configuration:
|
|
||||||
--help display this help and exit
|
|
||||||
--version display version information and exit
|
|
||||||
--sysroot=DIR operate on this root filesystem [/]
|
|
||||||
EOF
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
sysroot=
|
sysroot=
|
||||||
|
|
||||||
|
@ -66,16 +46,22 @@ for argument do
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ ! -e "$sysroot/etc/fstab" ]; then
|
|
||||||
echo "$0: $sysroot/etc/fstab: Need a filesystem table to make an initrd" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
sysmerge=false
|
sysmerge=false
|
||||||
exec_prefix="$sysroot"
|
exec_prefix="$sysroot"
|
||||||
if [ -d "$sysroot/sysmerge" ]; then
|
if [ -d "$sysroot/sysmerge" ]; then
|
||||||
|
# If an upgrade is pending, invoke the update-initrd of the new system, if
|
||||||
|
# we're not already it.
|
||||||
|
if [ "$(realpath -- "$(which -- "$0")")" != \
|
||||||
|
"$(realpath -- "$sysroot/sysmerge/sbin/update-initrd")" ]; then
|
||||||
|
exec "$sysroot/sysmerge/sbin/update-initrd" "$@"
|
||||||
|
fi
|
||||||
sysmerge=true
|
sysmerge=true
|
||||||
exec_prefix="$sysroot/sysmerge"
|
exec_prefix="$sysroot/sysmerge"
|
||||||
fi
|
fi
|
||||||
|
if [ ! -e "$sysroot/etc/fstab" ]; then
|
||||||
|
echo "$0: $sysroot/etc/fstab: Need a filesystem table to make an initrd" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
tmp=$(mktemp -d)
|
tmp=$(mktemp -d)
|
||||||
trap 'rm -rf "$tmp"' EXIT HUP INT QUIT TERM
|
trap 'rm -rf "$tmp"' EXIT HUP INT QUIT TERM
|
||||||
mkdir "$tmp/bin"
|
mkdir "$tmp/bin"
|
||||||
|
|
|
@ -30,6 +30,18 @@ If any of those files are updated then the
|
||||||
should be regenerated by invoking
|
should be regenerated by invoking
|
||||||
.Nm .
|
.Nm .
|
||||||
.Pp
|
.Pp
|
||||||
|
.Nm
|
||||||
|
is aware of
|
||||||
|
.Xr sysmerge 8
|
||||||
|
pending upgrades and will instead invoke the new
|
||||||
|
.Nm
|
||||||
|
in
|
||||||
|
.Pa /sysmerge
|
||||||
|
if an upgrade is pending.
|
||||||
|
.Nm
|
||||||
|
is written as a script so the initrd of the new system can produced even
|
||||||
|
across incompatible ABI changes.
|
||||||
|
.Pp
|
||||||
The options are as follows:
|
The options are as follows:
|
||||||
.Bl -tag -width "12345678"
|
.Bl -tag -width "12345678"
|
||||||
.It Fl \-sysroot Ns "=" Ns Ar sysroot
|
.It Fl \-sysroot Ns "=" Ns Ar sysroot
|
||||||
|
@ -58,4 +70,5 @@ will exit 0 on success and non-zero otherwise.
|
||||||
.Xr init 8 ,
|
.Xr init 8 ,
|
||||||
.Xr initrdfs 8 ,
|
.Xr initrdfs 8 ,
|
||||||
.Xr mkinitrd 8 ,
|
.Xr mkinitrd 8 ,
|
||||||
|
.Xr sysmerge 8 ,
|
||||||
.Xr update-grub 8
|
.Xr update-grub 8
|
||||||
|
|
Loading…
Reference in a new issue