The boot command won't boot if:
  - There are no boot entries: we should still clean up before
    returning an error
  - A menu or list of found entries should be displayed: we should
    exit with success
  - We were doing a dry run: we should propagate the boot entry
    boot method's exit code

Do the necessary.

Signed-off-by: Ahmad Fatoum <[email protected]>
---
 commands/boot.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/commands/boot.c b/commands/boot.c
index d7795bde726b..18f4e36ec733 100644
--- a/commands/boot.c
+++ b/commands/boot.c
@@ -97,19 +97,16 @@ static int do_boot(int argc, char *argv[])
 
        if (list_empty(&entries->entries)) {
                printf("Nothing bootable found\n");
-               return COMMAND_ERROR;
-       }
-
-       if (do_list) {
-               bootsources_list(entries);
+               ret = COMMAND_ERROR;
                goto out;
        }
 
-       if (do_menu) {
+       if (do_list)
+               bootsources_list(entries);
+       else if (do_menu)
                bootsources_menu(entries, timeout);
-               goto out;
-       }
 
+       ret = 0;
 out:
        bootentries_free(entries);
        free(freep);
-- 
2.29.2


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to