init-live : make it easier to add custom boot targets

When booting from the live image, the label from the bootloader is passed
to init.sh. init.sh uses the label to either boot a live image or call a
script to take over and install the system.

It is possible to add new labels to the bootloader via the LABELS family of
variables, but the names in init.sh were hardcoded to install and
install-efi

this patch checks if a shell script with the same name as the label is
available instead of using a hardcoded list. Any recipe can add such file
and this provide a new boot target to the live image

(From OE-Core rev: 2c10ca0fe612818cb43931b969ad2af5502f1e84)

Signed-off-by: Jérémy Rosen <jeremy.rosen@openwide.fr>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jérémy Rosen 2016-03-11 11:38:31 +01:00 committed by Richard Purdie
parent 57a525ca72
commit 21916234dd
1 changed files with 6 additions and 12 deletions

View File

@ -214,11 +214,7 @@ mount_and_boot() {
boot_live_root boot_live_root
} }
case $label in if [ "$label" != "boot" -a -f $label.sh ] ; then
boot)
mount_and_boot
;;
install|install-efi)
if [ -f /run/media/$i/$ISOLINUX/$ROOT_IMAGE ] ; then if [ -f /run/media/$i/$ISOLINUX/$ROOT_IMAGE ] ; then
./$label.sh $i/$ISOLINUX $ROOT_IMAGE $video_mode $vga_mode $console_params ./$label.sh $i/$ISOLINUX $ROOT_IMAGE $video_mode $vga_mode $console_params
else else
@ -226,10 +222,8 @@ case $label in
fi fi
# If we're getting here, we failed... # If we're getting here, we failed...
fatal "Installation image failed" fatal "Target $label failed"
;; fi
*)
# Not sure what boot label is provided. Try to boot to avoid locking up. mount_and_boot
mount_and_boot
;;
esac