| Message ID | 20251225213157.1219552-1-badrikesh.prusty@siemens.com |
|---|---|
| State | New |
| Headers | show |
| Series | installer: allow unattended mode to abort with keypress | expand |
On 25.12.25 22:31, 'Badrikesh Prusty' via isar-users wrote: > Add a 5-second countdown before unattended installation starts. Allow > users to abort unattended mode via keypress. Notify all console instances > via a shared file (`/tmp/attended_mode_trigger`) so the abort applies > across all consoles. > > Signed-off-by: Badrikesh Prusty <badrikesh.prusty@siemens.com> > --- > RECIPE-API-CHANGELOG.md | 6 ++++++ > .../files/usr/bin/deploy-image-wic.sh | 15 +++++++++++++++ > 2 files changed, 21 insertions(+) > > diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md > index 3af91541..cd1f1fd4 100644 > --- a/RECIPE-API-CHANGELOG.md > +++ b/RECIPE-API-CHANGELOG.md > @@ -941,3 +941,9 @@ Example: To bundle multiple target images, set the following in local.conf: > ``` > INSTALLER_TARGET_IMAGES = "isar-image-base isar-image-debug isar-image-ci" > ``` > + > +### Allow unattended installation to be interrupted by keypress > + > +Add a 5-second countdown before unattended installation starts. Allow users to > +abort unattended mode via keypress. Notify all console instances via a shared > +file (`/tmp/attended_mode_trigger`) so the abort applies across all consoles. > diff --git a/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh b/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh > index 9bd47e9f..5736a861 100755 > --- a/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh > +++ b/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh > @@ -10,6 +10,21 @@ SCRIPT_DIR=$( dirname -- "$( readlink -f -- "$0"; )"; ) > > . "${SCRIPT_DIR}/../lib/deploy-image-wic/handle-config.sh" > > +if $installer_unattended; then > + abort_file=/tmp/attended_mode_trigger > + for ((i=5; i>0; i--)); do > + echo -ne "\rUnattended installation will start in $i seconds. Press any key to switch to attended mode..." > + > + # Switch to attended mode if the abort file exists or any key pressed during countdown > + # Create abort file to notify all other console instances to abort > + if [ -f "$abort_file" ] || read -n 1 -t 1; then > + installer_unattended=false > + touch "$abort_file" > + break > + fi > + done > +fi This should be opt-in, and the timeout may deserve to be configurable. Jan > + > if ! $installer_unattended; then > installer_image_uri=$(find "$installdata" -type f -iname "*.wic*" -a -not -iname "*.wic.bmap" -exec basename {} \;) > if [ -z "$installer_image_uri" ] || [ ! -f "$installdata/$installer_image_uri" ]; then
diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index 3af91541..cd1f1fd4 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -941,3 +941,9 @@ Example: To bundle multiple target images, set the following in local.conf: ``` INSTALLER_TARGET_IMAGES = "isar-image-base isar-image-debug isar-image-ci" ``` + +### Allow unattended installation to be interrupted by keypress + +Add a 5-second countdown before unattended installation starts. Allow users to +abort unattended mode via keypress. Notify all console instances via a shared +file (`/tmp/attended_mode_trigger`) so the abort applies across all consoles. diff --git a/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh b/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh index 9bd47e9f..5736a861 100755 --- a/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh +++ b/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh @@ -10,6 +10,21 @@ SCRIPT_DIR=$( dirname -- "$( readlink -f -- "$0"; )"; ) . "${SCRIPT_DIR}/../lib/deploy-image-wic/handle-config.sh" +if $installer_unattended; then + abort_file=/tmp/attended_mode_trigger + for ((i=5; i>0; i--)); do + echo -ne "\rUnattended installation will start in $i seconds. Press any key to switch to attended mode..." + + # Switch to attended mode if the abort file exists or any key pressed during countdown + # Create abort file to notify all other console instances to abort + if [ -f "$abort_file" ] || read -n 1 -t 1; then + installer_unattended=false + touch "$abort_file" + break + fi + done +fi + if ! $installer_unattended; then installer_image_uri=$(find "$installdata" -type f -iname "*.wic*" -a -not -iname "*.wic.bmap" -exec basename {} \;) if [ -z "$installer_image_uri" ] || [ ! -f "$installdata/$installer_image_uri" ]; then
Add a 5-second countdown before unattended installation starts. Allow users to abort unattended mode via keypress. Notify all console instances via a shared file (`/tmp/attended_mode_trigger`) so the abort applies across all consoles. Signed-off-by: Badrikesh Prusty <badrikesh.prusty@siemens.com> --- RECIPE-API-CHANGELOG.md | 6 ++++++ .../files/usr/bin/deploy-image-wic.sh | 15 +++++++++++++++ 2 files changed, 21 insertions(+)